Skip to content

Commit

Permalink
SONAR-11858 Fix quality issues
Browse files Browse the repository at this point in the history
  • Loading branch information
dbmeneses authored and SonarTech committed Apr 23, 2019
1 parent bec219d commit 2a87f9a
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 99 deletions.
Expand Up @@ -25,21 +25,21 @@
import java.util.Optional; import java.util.Optional;
import org.sonar.api.issue.Issue; import org.sonar.api.issue.Issue;
import org.sonar.api.rules.RuleType; import org.sonar.api.rules.RuleType;
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
import org.sonar.core.issue.DefaultIssue; import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.issue.DefaultIssueComment; import org.sonar.core.issue.DefaultIssueComment;
import org.sonar.core.issue.FieldDiffs; import org.sonar.core.issue.FieldDiffs;
import org.sonar.core.issue.IssueChangeContext; import org.sonar.core.issue.IssueChangeContext;
import org.sonar.core.util.Uuids; import org.sonar.core.util.Uuids;
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
import org.sonar.server.issue.IssueFieldsSetter; import org.sonar.server.issue.IssueFieldsSetter;
import org.sonar.server.issue.workflow.IssueWorkflow; import org.sonar.server.issue.workflow.IssueWorkflow;


/** /**
* Sets the appropriate fields when an issue is : * Sets the appropriate fields when an issue is :
* <ul> * <ul>
* <li>newly created</li> * <li>newly created</li>
* <li>merged the related base issue</li> * <li>merged the related base issue</li>
* <li>relocated (only manual issues)</li> * <li>relocated (only manual issues)</li>
* </ul> * </ul>
*/ */
public class IssueLifecycle { public class IssueLifecycle {
Expand Down Expand Up @@ -94,7 +94,8 @@ public void copyExistingOpenIssueFromLongLivingBranch(DefaultIssue raw, DefaultI


public void mergeConfirmedOrResolvedFromShortLivingBranch(DefaultIssue raw, DefaultIssue base, String fromShortBranchName) { public void mergeConfirmedOrResolvedFromShortLivingBranch(DefaultIssue raw, DefaultIssue base, String fromShortBranchName) {
copyAttributesOfIssueFromOtherBranch(raw, base); copyAttributesOfIssueFromOtherBranch(raw, base);
raw.setFieldChange(changeContext, IssueFieldsSetter.FROM_SHORT_BRANCH, fromShortBranchName, analysisMetadataHolder.isPullRequest() ? analysisMetadataHolder.getPullRequestKey() : analysisMetadataHolder.getBranch().getName()); raw.setFieldChange(changeContext, IssueFieldsSetter.FROM_SHORT_BRANCH, fromShortBranchName,
analysisMetadataHolder.isPullRequest() ? analysisMetadataHolder.getPullRequestKey() : analysisMetadataHolder.getBranch().getName());
} }


private void copyAttributesOfIssueFromOtherBranch(DefaultIssue to, DefaultIssue from) { private void copyAttributesOfIssueFromOtherBranch(DefaultIssue to, DefaultIssue from) {
Expand Down
Expand Up @@ -62,7 +62,7 @@ public class BranchPersisterImplTest {
@Rule @Rule
public ExpectedException exception = ExpectedException.none(); public ExpectedException exception = ExpectedException.none();


BranchPersister underTest = new BranchPersisterImpl(dbTester.getDbClient(), treeRootHolder, analysisMetadataHolder); private BranchPersister underTest = new BranchPersisterImpl(dbTester.getDbClient(), treeRootHolder, analysisMetadataHolder);


@Test @Test
public void persist_fails_with_ISE_if_no_component_for_main_branches() { public void persist_fails_with_ISE_if_no_component_for_main_branches() {
Expand Down
Expand Up @@ -63,6 +63,7 @@
import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail; import static org.assertj.core.api.Assertions.fail;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions;
Expand Down Expand Up @@ -139,7 +140,7 @@ public void feed_one_period() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
String textDate = "2008-11-22"; String textDate = "2008-11-22";


settings.setProperty("sonar.leak.period", textDate); settings.setProperty("sonar.leak.period", textDate);
Expand All @@ -161,7 +162,7 @@ public void ignore_unprocessed_snapshots() {
when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "100"); settings.setProperty("sonar.leak.period", "100");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand All @@ -182,7 +183,7 @@ public void feed_period_by_date() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


String textDate = "2008-11-22"; String textDate = "2008-11-22";
settings.setProperty("sonar.leak.period", textDate); settings.setProperty("sonar.leak.period", textDate);
Expand All @@ -209,7 +210,7 @@ public void feed_period_by_date_and_ignore_baseline_when_not_eligible_for_manual
dbTester.commit(); dbTester.commit();
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(branch)); setBranchOf(branch);
setupRoot(branch); setupRoot(branch);


String textDate = "2008-11-22"; String textDate = "2008-11-22";
Expand Down Expand Up @@ -243,8 +244,7 @@ public void do_not_fail_when_project_has_no_BranchDto(String leakPeriodSettingVa
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
Branch branch = mockBranch(BranchType.LONG); setMetadataBranch(BranchType.LONG);
when(analysisMetadataHolder.getBranch()).thenReturn(branch);
setupRoot(project); setupRoot(project);


settings.setProperty("sonar.leak.period", leakPeriodSettingValue); settings.setProperty("sonar.leak.period", leakPeriodSettingValue);
Expand All @@ -257,7 +257,7 @@ public void fail_with_ISE_when_manual_baseline_is_set_but_does_not_exist_in_DB(S
OrganizationDto organization = dbTester.organizations().insert(); OrganizationDto organization = dbTester.organizations().insert();
ComponentDto project = dbTester.components().insertMainBranch(organization); ComponentDto project = dbTester.components().insertMainBranch(organization);
dbTester.components().setManualBaseline(project, new SnapshotDto().setUuid("nonexistent")); dbTester.components().setManualBaseline(project, new SnapshotDto().setUuid("nonexistent"));
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


expectedException.expect(IllegalStateException.class); expectedException.expect(IllegalStateException.class);
Expand All @@ -275,7 +275,7 @@ public void fail_with_ISE_when_manual_baseline_is_set_but_does_not_belong_to_cur
ComponentDto otherProject = dbTester.components().insertMainBranch(organization); ComponentDto otherProject = dbTester.components().insertMainBranch(organization);
SnapshotDto otherProjectAnalysis = dbTester.components().insertSnapshot(otherProject); SnapshotDto otherProjectAnalysis = dbTester.components().insertSnapshot(otherProject);
dbTester.components().setManualBaseline(project, otherProjectAnalysis); dbTester.components().setManualBaseline(project, otherProjectAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


expectedException.expect(IllegalStateException.class); expectedException.expect(IllegalStateException.class);
Expand All @@ -299,7 +299,7 @@ public void feed_period_by_manual_baseline_ignores_leak_period_setting(String le
when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
dbTester.components().setManualBaseline(project, manualBaselineAnalysis); dbTester.components().setManualBaseline(project, manualBaselineAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


settings.setProperty("sonar.leak.period", leakPeriodSettingValue); settings.setProperty("sonar.leak.period", leakPeriodSettingValue);
Expand All @@ -324,7 +324,7 @@ public void feed_period_by_manual_baseline_on_long_living_branch(String leakPeri
when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
dbTester.components().setManualBaseline(branch, manualBaselineAnalysis); dbTester.components().setManualBaseline(branch, manualBaselineAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(branch)); setBranchOf(branch);
setupRoot(branch); setupRoot(branch);


settings.setProperty("sonar.leak.period", leakPeriodSettingValue); settings.setProperty("sonar.leak.period", leakPeriodSettingValue);
Expand Down Expand Up @@ -355,7 +355,7 @@ public void feed_period_parameter_as_null_when_manual_baseline_has_no_version()
ComponentDto project = dbTester.components().insertMainBranch(organization); ComponentDto project = dbTester.components().insertMainBranch(organization);
SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project);
dbTester.components().setManualBaseline(project, manualBaselineAnalysis); dbTester.components().setManualBaseline(project, manualBaselineAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


settings.setProperty("sonar.leak.period", "ignored"); settings.setProperty("sonar.leak.period", "ignored");
Expand All @@ -371,7 +371,7 @@ public void feed_period_parameter_as_null_when_manual_baseline_has_same_project_
ComponentDto project = dbTester.components().insertMainBranch(organization); ComponentDto project = dbTester.components().insertMainBranch(organization);
SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(version).setProjectVersion(version)); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(version).setProjectVersion(version));
dbTester.components().setManualBaseline(project, manualBaselineAnalysis); dbTester.components().setManualBaseline(project, manualBaselineAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


settings.setProperty("sonar.leak.period", "ignored"); settings.setProperty("sonar.leak.period", "ignored");
Expand All @@ -387,7 +387,7 @@ public void feed_no_period_parameter_as_projectVersion_when_manual_baseline_has_
ComponentDto project = dbTester.components().insertMainBranch(organization); ComponentDto project = dbTester.components().insertMainBranch(organization);
SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(projectVersion)); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(projectVersion));
dbTester.components().setManualBaseline(project, manualBaselineAnalysis); dbTester.components().setManualBaseline(project, manualBaselineAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


settings.setProperty("sonar.leak.period", "ignored"); settings.setProperty("sonar.leak.period", "ignored");
Expand All @@ -405,7 +405,7 @@ public void feed_no_period_parameter_as_version_event_version_when_manual_baseli
SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(projectVersion)); SnapshotDto manualBaselineAnalysis = dbTester.components().insertSnapshot(project, t -> t.setProjectVersion(projectVersion));
dbTester.events().insertEvent(EventTesting.newEvent(manualBaselineAnalysis).setCategory(CATEGORY_VERSION).setName(eventVersion)); dbTester.events().insertEvent(EventTesting.newEvent(manualBaselineAnalysis).setCategory(CATEGORY_VERSION).setName(eventVersion));
dbTester.components().setManualBaseline(project, manualBaselineAnalysis); dbTester.components().setManualBaseline(project, manualBaselineAnalysis);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(project)); setBranchOf(project);
setupRoot(project); setupRoot(project);


settings.setProperty("sonar.leak.period", "ignored"); settings.setProperty("sonar.leak.period", "ignored");
Expand All @@ -422,60 +422,18 @@ public static Object[][] projectVersionNullOrNot() {
}; };
} }


private Branch branchOf(ComponentDto project) { private Branch setBranchOf(ComponentDto project) {
BranchDto branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), project.uuid()).get(); BranchDto branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), project.uuid()).get();
return new Branch() { return setMetadataBranch(branchDto.getBranchType());
@Override
public BranchType getType() {
return branchDto.getBranchType();
}

@Override
public boolean isMain() {
throw new UnsupportedOperationException("isMain not implemented");
}

@Override
public boolean isLegacyFeature() {
throw new UnsupportedOperationException("isLegacyFeature not implemented");
}

@Override
public String getName() {
throw new UnsupportedOperationException("getName not implemented");
}

@Override
public String getMergeBranchUuid() {
throw new UnsupportedOperationException("getMergeBranchUuid not implemented");
}

@Override
public boolean supportsCrossProjectCpd() {
throw new UnsupportedOperationException("supportsCrossProjectCpd not implemented");
}

@Override
public String getPullRequestKey() {
throw new UnsupportedOperationException("getPullRequestKey not implemented");
}

@Override
public String getTargetBranchName() {
throw new UnsupportedOperationException();
}

@Override
public String generateKey(String projectKey, @Nullable String fileOrDirPath) {
throw new UnsupportedOperationException("generateKey not implemented");
}
};
} }


private Branch mockBranch(BranchType branchType) { private Branch setMetadataBranch(BranchType branchType) {
Branch mock = mock(Branch.class); Branch branch = mock(Branch.class, invoc -> {
when(mock.getType()).thenReturn(branchType); throw new UnsupportedOperationException();
return mock; });
doReturn(branchType).when(branch).getType();
when(analysisMetadataHolder.getBranch()).thenReturn(branch);
return branch;
} }


@Test @Test
Expand All @@ -490,7 +448,7 @@ public void search_by_date_return_nearest_later_analysis() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


String date = "2008-11-13"; String date = "2008-11-13";
settings.setProperty("sonar.leak.period", date); settings.setProperty("sonar.leak.period", date);
Expand All @@ -509,7 +467,7 @@ public void fail_with_MessageException_if_period_is_date_after_today() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
String propertyValue = "2008-12-01"; String propertyValue = "2008-12-01";
settings.setProperty("sonar.leak.period", propertyValue); settings.setProperty("sonar.leak.period", propertyValue);


Expand All @@ -525,7 +483,7 @@ public void fail_with_MessageException_if_date_does_not_exist() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
String propertyValue = "2008-11-31"; String propertyValue = "2008-11-31";
settings.setProperty("sonar.leak.period", propertyValue); settings.setProperty("sonar.leak.period", propertyValue);


Expand All @@ -541,7 +499,7 @@ public void fail_with_MessageException_if_period_is_today_but_no_analysis_today(
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
String propertyValue = "2008-11-30"; String propertyValue = "2008-11-30";
settings.setProperty("sonar.leak.period", propertyValue); settings.setProperty("sonar.leak.period", propertyValue);


Expand All @@ -558,7 +516,7 @@ public void fail_with_MessageException_if_period_is_0_or_less(int zeroOrLess) {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
String propertyValue = String.valueOf(zeroOrLess); String propertyValue = String.valueOf(zeroOrLess);
settings.setProperty("sonar.leak.period", propertyValue); settings.setProperty("sonar.leak.period", propertyValue);


Expand All @@ -581,7 +539,7 @@ public void fail_with_ISE_if_not_firstAnalysis_but_no_snapshot_in_DB() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
settings.setProperty("sonar.leak.period", "previous_version"); settings.setProperty("sonar.leak.period", "previous_version");


expectedException.expect(IllegalStateException.class); expectedException.expect(IllegalStateException.class);
Expand All @@ -606,7 +564,7 @@ public void fail_with_MessageException_if_string_is_not_an_existing_version_even
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);
settings.setProperty("sonar.leak.period", propertyValue); settings.setProperty("sonar.leak.period", propertyValue);


try { try {
Expand Down Expand Up @@ -680,7 +638,7 @@ public void feed_period_by_days() {
when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime()); when(analysisMetadataHolder.getAnalysisDate()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project); setupRoot(project);
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "10"); settings.setProperty("sonar.leak.period", "10");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand Down Expand Up @@ -709,7 +667,7 @@ public void feed_period_by_previous_version() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project, "1.1"); setupRoot(project, "1.1");
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "previous_version"); settings.setProperty("sonar.leak.period", "previous_version");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand All @@ -733,7 +691,7 @@ public void feed_period_by_previous_version_with_previous_version_deleted() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project, "1.1"); setupRoot(project, "1.1");
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "previous_version"); settings.setProperty("sonar.leak.period", "previous_version");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand All @@ -752,7 +710,7 @@ public void feed_period_by_previous_version_with_first_analysis_when_no_previous
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project, "1.1"); setupRoot(project, "1.1");
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "previous_version"); settings.setProperty("sonar.leak.period", "previous_version");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand All @@ -771,7 +729,7 @@ public void feed_period_by_previous_version_with_first_analysis_when_previous_sn
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project, "1.1"); setupRoot(project, "1.1");
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "previous_version"); settings.setProperty("sonar.leak.period", "previous_version");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand All @@ -795,7 +753,7 @@ public void feed_period_by_version() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project, "1.1"); setupRoot(project, "1.1");
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "1.0"); settings.setProperty("sonar.leak.period", "1.0");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand All @@ -817,7 +775,7 @@ public void feed_period_by_version_with_only_one_existing_version() {
when(system2Mock.now()).thenReturn(november30th2008.getTime()); when(system2Mock.now()).thenReturn(november30th2008.getTime());
when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false); when(analysisMetadataHolder.isFirstAnalysis()).thenReturn(false);
setupRoot(project, "0.9"); setupRoot(project, "0.9");
setupBranchWithNoManualBaseline(analysisMetadataHolder, project); setupBranchWithNoManualBaseline(project);


settings.setProperty("sonar.leak.period", "0.9"); settings.setProperty("sonar.leak.period", "0.9");
underTest.execute(new TestComputationStepContext()); underTest.execute(new TestComputationStepContext());
Expand Down Expand Up @@ -863,9 +821,9 @@ private void setupRoot(ComponentDto project, String version) {
when(configurationRepository.getConfiguration()).thenReturn(settings.asConfig()); when(configurationRepository.getConfiguration()).thenReturn(settings.asConfig());
} }


private void setupBranchWithNoManualBaseline(AnalysisMetadataHolder analysisMetadataHolder, ComponentDto projectOrLongBranch) { private void setupBranchWithNoManualBaseline(ComponentDto projectOrLongBranch) {
dbTester.components().unsetManualBaseline(projectOrLongBranch); dbTester.components().unsetManualBaseline(projectOrLongBranch);
when(analysisMetadataHolder.getBranch()).thenReturn(branchOf(projectOrLongBranch)); setBranchOf(projectOrLongBranch);
} }


private static void verifyInvalidValueMessage(MessageException e, String propertyValue) { private static void verifyInvalidValueMessage(MessageException e, String propertyValue) {
Expand Down
Expand Up @@ -108,6 +108,7 @@ public void handle(Request request, Response response) throws Exception {
Map<String, BranchDto> mergeBranchesByUuid = dbClient.branchDao() Map<String, BranchDto> mergeBranchesByUuid = dbClient.branchDao()
.selectByUuids(dbSession, pullRequests.stream().map(BranchDto::getMergeBranchUuid).filter(Objects::nonNull).collect(toList())) .selectByUuids(dbSession, pullRequests.stream().map(BranchDto::getMergeBranchUuid).filter(Objects::nonNull).collect(toList()))
.stream().collect(uniqueIndex(BranchDto::getUuid)); .stream().collect(uniqueIndex(BranchDto::getUuid));

Map<String, BranchStatistics> branchStatisticsByBranchUuid = issueIndex.searchBranchStatistics(project.uuid(), pullRequestUuids).stream() Map<String, BranchStatistics> branchStatisticsByBranchUuid = issueIndex.searchBranchStatistics(project.uuid(), pullRequestUuids).stream()
.collect(uniqueIndex(BranchStatistics::getBranchUuid, Function.identity())); .collect(uniqueIndex(BranchStatistics::getBranchUuid, Function.identity()));
Map<String, LiveMeasureDto> qualityGateMeasuresByComponentUuids = dbClient.liveMeasureDao() Map<String, LiveMeasureDto> qualityGateMeasuresByComponentUuids = dbClient.liveMeasureDao()
Expand Down

0 comments on commit 2a87f9a

Please sign in to comment.