aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-06-17 11:36:49 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-06-21 12:08:41 +0200
commit3bebc5fffefe706a322110a76d6098d04aad6e79 (patch)
tree9baa10d31512cb84501f6d1462a0ff5e76d5cd2d /server
parent6cd9c9cea63ab0858906a9a512c8e0359e54d228 (diff)
downloadsonarqube-3bebc5fffefe706a322110a76d6098d04aad6e79.tar.gz
sonarqube-3bebc5fffefe706a322110a76d6098d04aad6e79.zip
SONAR-7778 support addition of DUPLICATIONS_INDEX.COMPONENT_UUID
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStep.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/LoadCrossProjectDuplicationsRepositoryStepTest.java48
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistCrossProjectDuplicationIndexStepTest.java7
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);
}