diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-06-17 11:36:49 +0200 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-06-21 12:08:41 +0200 |
commit | 3bebc5fffefe706a322110a76d6098d04aad6e79 (patch) | |
tree | 9baa10d31512cb84501f6d1462a0ff5e76d5cd2d /server | |
parent | 6cd9c9cea63ab0858906a9a512c8e0359e54d228 (diff) | |
download | sonarqube-3bebc5fffefe706a322110a76d6098d04aad6e79.tar.gz sonarqube-3bebc5fffefe706a322110a76d6098d04aad6e79.zip |
SONAR-7778 support addition of DUPLICATIONS_INDEX.COMPONENT_UUID
Diffstat (limited to 'server')
3 files changed, 32 insertions, 27 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStep.java index 8a2410363fe..a59c2af1306 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStep.java @@ -100,8 +100,8 @@ public class PersistCrossProjectDuplicationIndexStep implements ComputationStep .setEndLine(block.getEndLine()) .setIndexInFile(indexInFile) .setSnapshotId(dbIdsRepository.getSnapshotId(component)) - .setProjectSnapshotId(projectSnapshotId) - ); + .setComponentUuid(component.getUuid()) + .setProjectSnapshotId(projectSnapshotId)); indexInFile++; } } finally { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadCrossProjectDuplicationsRepositoryStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadCrossProjectDuplicationsRepositoryStepTest.java index 356e33c0b5a..1b84b4591a9 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadCrossProjectDuplicationsRepositoryStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadCrossProjectDuplicationsRepositoryStepTest.java @@ -19,8 +19,12 @@ */ package org.sonar.server.computation.step; -import java.util.*; - +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -50,7 +54,11 @@ import org.sonar.server.computation.snapshot.Snapshot; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; import static org.sonar.server.computation.component.Component.Type.FILE; import static org.sonar.server.computation.component.Component.Type.PROJECT; @@ -73,8 +81,7 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { @Rule public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule().setRoot( ReportComponent.builder(PROJECT, PROJECT_REF) - .addChildren(CURRENT_FILE - ).build()); + .addChildren(CURRENT_FILE).build()); @Rule public BatchReportReaderRule batchReportReader = new BatchReportReaderRule(); @@ -130,7 +137,8 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setEndLine(55) .setIndexInFile(0) .setProjectSnapshotId(otherProjectSnapshot.getId()) - .setSnapshotId(otherFileSnapshot.getId()); + .setSnapshotId(otherFileSnapshot.getId()) + .setComponentUuid(otherFileSnapshot.getComponentUuid()); dbClient.duplicationDao().insert(dbSession, duplicate); dbSession.commit(); @@ -153,17 +161,14 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setIndexInFile(0) .setLines(originBlock.getStartLine(), originBlock.getEndLine()) .setUnit(originBlock.getStartTokenIndex(), originBlock.getEndTokenIndex()) - .build() - ), + .build()), Arrays.asList( new Block.Builder() .setResourceId(otherFIle.getKey()) .setBlockHash(new ByteArray(hash)) .setIndexInFile(duplicate.getIndexInFile()) .setLines(duplicate.getStartLine(), duplicate.getEndLine()) - .build() - ) - ); + .build())); } @Test @@ -199,7 +204,8 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setEndLine(55) .setIndexInFile(0) .setProjectSnapshotId(otherProjectSnapshot.getId()) - .setSnapshotId(otherFileSnapshot.getId()); + .setSnapshotId(otherFileSnapshot.getId()) + .setComponentUuid(otherFileSnapshot.getComponentUuid()); DuplicationUnitDto duplicate2 = new DuplicationUnitDto() .setHash(originBlock2.getHash()) @@ -207,7 +213,8 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setEndLine(35) .setIndexInFile(1) .setProjectSnapshotId(otherProjectSnapshot.getId()) - .setSnapshotId(otherFileSnapshot.getId()); + .setSnapshotId(otherFileSnapshot.getId()) + .setComponentUuid(otherFileSnapshot.getComponentUuid()); dbClient.duplicationDao().insert(dbSession, duplicate1); dbClient.duplicationDao().insert(dbSession, duplicate2); dbSession.commit(); @@ -228,8 +235,7 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setIndexInFile(0) .setLines(originBlock1.getStartLine(), originBlock1.getEndLine()) .setUnit(originBlock1.getStartTokenIndex(), originBlock1.getEndTokenIndex()) - .build() - ); + .build()); assertThat(originBlocksByIndex.get(1)).isEqualTo( new Block.Builder() .setResourceId(CURRENT_FILE_KEY) @@ -237,8 +243,7 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setIndexInFile(1) .setLines(originBlock2.getStartLine(), originBlock2.getEndLine()) .setUnit(originBlock2.getStartTokenIndex(), originBlock2.getEndTokenIndex()) - .build() - ); + .build()); Map<Integer, Block> duplicationBlocksByIndex = blocksByIndexInFile(duplicationBlocks.getValue()); assertThat(duplicationBlocksByIndex.get(0)).isEqualTo( @@ -247,16 +252,14 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setBlockHash(new ByteArray(originBlock1.getHash())) .setIndexInFile(duplicate1.getIndexInFile()) .setLines(duplicate1.getStartLine(), duplicate1.getEndLine()) - .build() - ); + .build()); assertThat(duplicationBlocksByIndex.get(1)).isEqualTo( new Block.Builder() .setResourceId(otherFIle.getKey()) .setBlockHash(new ByteArray(originBlock2.getHash())) .setIndexInFile(duplicate2.getIndexInFile()) .setLines(duplicate2.getStartLine(), duplicate2.getEndLine()) - .build() - ); + .build()); } @Test @@ -277,7 +280,8 @@ public class LoadCrossProjectDuplicationsRepositoryStepTest { .setEndLine(55) .setIndexInFile(0) .setProjectSnapshotId(otherProjectSnapshot.getId()) - .setSnapshotId(otherFileSnapshot.getId()); + .setSnapshotId(otherFileSnapshot.getId()) + .setComponentUuid(otherFileSnapshot.getComponentUuid()); dbClient.duplicationDao().insert(dbSession, duplicate); dbSession.commit(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStepTest.java index cfee41ef09a..6fcabab19e8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStepTest.java @@ -23,7 +23,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; - import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -91,12 +90,13 @@ public class PersistCrossProjectDuplicationIndexStepTest { underTest.execute(); Map<String, Object> dto = dbTester.selectFirst("select hash as \"hash\", start_line as \"startLine\", end_line as \"endLine\", index_in_file as \"indexInFile\", " + - "snapshot_id as \"snapshotId\", project_snapshot_id as \"projectSnapshotId\" from duplications_index"); + "snapshot_id as \"snapshotId\", component_uuid as \"componentUuid\", project_snapshot_id as \"projectSnapshotId\" from duplications_index"); assertThat(dto.get("hash")).isEqualTo(CPD_TEXT_BLOCK.getHash()); assertThat(dto.get("startLine")).isEqualTo(30L); assertThat(dto.get("endLine")).isEqualTo(45L); assertThat(dto.get("indexInFile")).isEqualTo(0L); assertThat(dto.get("snapshotId")).isEqualTo(FILE_SNAPSHOT_ID); + assertThat(dto.get("componentUuid")).isEqualTo(FILE.getUuid()); assertThat(dto.get("projectSnapshotId")).isEqualTo(PROJECT_SNAPSHOT_ID); } @@ -114,12 +114,13 @@ public class PersistCrossProjectDuplicationIndexStepTest { underTest.execute(); List<Map<String, Object>> dtos = dbTester.select("select hash as \"hash\", start_line as \"startLine\", end_line as \"endLine\", index_in_file as \"indexInFile\", " + - "snapshot_id as \"snapshotId\", project_snapshot_id as \"projectSnapshotId\" from duplications_index"); + "snapshot_id as \"snapshotId\", component_uuid as \"componentUuid\", project_snapshot_id as \"projectSnapshotId\" from duplications_index"); assertThat(dtos).extracting("hash").containsOnly(CPD_TEXT_BLOCK.getHash(), "b1234353e96320ff"); assertThat(dtos).extracting("startLine").containsOnly(30L, 20L); assertThat(dtos).extracting("endLine").containsOnly(45L, 15L); assertThat(dtos).extracting("indexInFile").containsOnly(0L, 1L); assertThat(dtos).extracting("snapshotId").containsOnly(FILE_SNAPSHOT_ID); + assertThat(dtos).extracting("componentUuid").containsOnly(FILE.getUuid()); assertThat(dtos).extracting("projectSnapshotId").containsOnly(PROJECT_SNAPSHOT_ID); } |