Package org.sonar.api.utils

Examples of org.sonar.api.utils.Duration


      }
      updater.setPastLine(issue, ref.getLine());
      updater.setPastMessage(issue, ref.getMessage(), changeContext);
      updater.setPastEffortToFix(issue, ref.getEffortToFix(), changeContext);
      Long debtInMinutes = ref.getDebt();
      Duration previousTechnicalDebt = debtInMinutes != null ? Duration.create(debtInMinutes) : null;
      updater.setPastTechnicalDebt(issue, previousTechnicalDebt, changeContext);
      updater.setPastProject(issue, ref.getProjectKey(), changeContext);
    }
  }
View Full Code Here


  @CheckForNull
  private String sanitizeValue(String label, @Nullable String s) {
    if (StringUtils.isNotBlank(s)) {
      try {
        Duration duration = Duration.decode(s, HOURS_IN_DAY);
        return duration.encode(HOURS_IN_DAY);
      } catch (Exception e) {
        throw new IllegalArgumentException(String.format("Invalid %s: %s (%s)", label, s, e.getMessage()), e);
      }
    }
    return null;
View Full Code Here

    assertThat(issue.mustSendNotifications()).isFalse();
  }

  @Test
  public void set_past_technical_debt() throws Exception {
    Duration newDebt = Duration.create(15 * 8 * 60);
    Duration previousDebt = Duration.create(10 * 8 * 60);
    issue.setDebt(newDebt);
    boolean updated = updater.setPastTechnicalDebt(issue, previousDebt, context);
    assertThat(updated).isTrue();
    assertThat(issue.debt()).isEqualTo(newDebt);
    assertThat(issue.mustSendNotifications()).isFalse();
View Full Code Here

    assertThat(diff.newValue()).isEqualTo(15L * 8 * 60);
  }

  @Test
  public void set_past_technical_debt_without_previous_value() throws Exception {
    Duration newDebt = Duration.create(15 * 8 * 60);
    issue.setDebt(newDebt);
    boolean updated = updater.setPastTechnicalDebt(issue, null, context);
    assertThat(updated).isTrue();
    assertThat(issue.debt()).isEqualTo(newDebt);
    assertThat(issue.mustSendNotifications()).isFalse();
View Full Code Here

  }

  @Test
  public void set_past_technical_debt_with_null_new_value() throws Exception {
    issue.setDebt(null);
    Duration previousDebt = Duration.create(10 * 8 * 60);
    boolean updated = updater.setPastTechnicalDebt(issue, previousDebt, context);
    assertThat(updated).isTrue();
    assertThat(issue.debt()).isNull();
    assertThat(issue.mustSendNotifications()).isFalse();

View Full Code Here

  private Duration calculateDebt(DebtRemediationFunction function, @Nullable Double effortToFix, RuleKey ruleKey) {
    if (DebtRemediationFunction.Type.CONSTANT_ISSUE.equals(function.type()) && effortToFix != null) {
      throw new IllegalArgumentException("Rule '" + ruleKey + "' can not use 'Constant/issue' remediation function " +
        "because this rule does not have a fixed remediation cost.");
    }
    Duration result = Duration.create(0);
    Duration factor = function.coefficient();
    Duration offset = function.offset();

    if (factor != null) {
      int effortToFixValue = Objects.firstNonNull(effortToFix, 1).intValue();
      result = factor.multiply(effortToFixValue);
    }
View Full Code Here

    issue.setEffortToFix(previousEffort);
    return setEffortToFix(issue, currentEffort, context);
  }

  public boolean setTechnicalDebt(DefaultIssue issue, @Nullable Duration value, IssueChangeContext context) {
    Duration oldValue = issue.debt();
    if (!Objects.equal(value, oldValue)) {
      issue.setDebt(value != null ? value : null);
      issue.setFieldChange(context, TECHNICAL_DEBT, oldValue != null ? oldValue.toMinutes() : null, value != null ? value.toMinutes() : null);
      issue.setUpdateDate(context.date());
      issue.setChanged(true);
      return true;
    }
    return false;
View Full Code Here

    }
    return false;
  }

  public boolean setPastTechnicalDebt(DefaultIssue issue, @Nullable Duration previousTechnicalDebt, IssueChangeContext context) {
    Duration currentTechnicalDebt = issue.debt();
    issue.setDebt(previousTechnicalDebt);
    return setTechnicalDebt(issue, currentTechnicalDebt, context);
  }
View Full Code Here

    request.execute().assertJson(getClass(), "show_issue_with_users.json");
  }

  @Test
  public void show_issue_with_technical_debt() throws Exception {
    Duration debt = (Duration.create(7260L));
    DefaultIssue issue = createStandardIssue().setDebt(debt);
    when(issueService.getByKey(issue.key())).thenReturn(issue);

    when(durations.encode(debt)).thenReturn("2h1min");
View Full Code Here

      json.beginObject();

      String actionPlanKey = issue.actionPlanKey();
      ComponentDto file = componentsByUuid.get(issue.componentUuid());
      ComponentDto project = file != null ? projectsByComponentUuid.get(file.uuid()) : null;
      Duration debt = issue.debt();
      Date updateDate = issue.updateDate();

      json
        .prop("key", issue.key())
        .prop("component", file != null ? file.getKey() : null)
View Full Code Here

TOP

Related Classes of org.sonar.api.utils.Duration

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.