assertThat(duplicationBlocks.get(0).getEndLine()).isEqualTo(5); assertThat(duplicationBlocks.get(0).getStartTokenIndex()).isEqualTo(1); assertThat(duplicationBlocks.get(0).getEndTokenIndex()).isEqualTo(6); assertThat(duplicationBlocks.get(0).getHash()).isNotEmpty(); assertThat(duplicationBlocks.get(1).getEndLine()).isEqualTo(6); assertThat(duplicationBlocks.get(1).getStartTokenIndex()).isEqualTo(3); assertThat(duplicationBlocks.get(1).getEndTokenIndex()).isEqualTo(7); assertThat(duplicationBlocks.get(0).getHash()).isNotEmpty(); assertThat(duplicationBlocks.get(2).getEndLine()).isEqualTo(7); assertThat(duplicationBlocks.get(2).getStartTokenIndex()).isEqualTo(4); assertThat(duplicationBlocks.get(2).getEndTokenIndex()).isEqualTo(8); assertThat(duplicationBlocks.get(0).getHash()).isNotEmpty();
@Test public void write_duplication_blocks() { assertThat(underTest.hasComponentData(FileStructure.Domain.CPD_TEXT_BLOCKS, 1)).isFalse(); ScannerReport.CpdTextBlock duplicationBlock = ScannerReport.CpdTextBlock.newBuilder() .setHash("abcdefghijklmnop") .setStartLine(1) .setEndLine(2) .setStartTokenIndex(10) .setEndTokenIndex(15) .build(); underTest.writeCpdTextBlocks(1, asList(duplicationBlock)); assertThat(underTest.hasComponentData(FileStructure.Domain.CPD_TEXT_BLOCKS, 1)).isTrue(); File file = underTest.getFileStructure().fileFor(FileStructure.Domain.CPD_TEXT_BLOCKS, 1); assertThat(file).exists().isFile(); try (CloseableIterator<ScannerReport.CpdTextBlock> duplicationBlocks = Protobuf.readStream(file, ScannerReport.CpdTextBlock.parser())) { ScannerReport.CpdTextBlock duplicationBlockResult = duplicationBlocks.next(); assertThat(duplicationBlockResult.getHash()).isEqualTo("abcdefghijklmnop"); assertThat(duplicationBlockResult.getStartLine()).isEqualTo(1); assertThat(duplicationBlockResult.getEndLine()).isEqualTo(2); assertThat(duplicationBlockResult.getStartTokenIndex()).isEqualTo(10); assertThat(duplicationBlockResult.getEndTokenIndex()).isEqualTo(15); } }
@Override public Block apply(@Nonnull CpdTextBlock duplicationBlock) { Block block = Block.builder() .setResourceId(fileKey) .setBlockHash(new ByteArray(duplicationBlock.getHash())) .setIndexInFile(indexInFile) .setLines(duplicationBlock.getStartLine(), duplicationBlock.getEndLine()) .setUnit(duplicationBlock.getStartTokenIndex(), duplicationBlock.getEndTokenIndex()) .build(); indexInFile++; return block; } }
@Override public Block apply(@Nonnull CpdTextBlock duplicationBlock) { Block block = Block.builder() .setResourceId(fileKey) .setBlockHash(new ByteArray(duplicationBlock.getHash())) .setIndexInFile(indexInFile) .setLines(duplicationBlock.getStartLine(), duplicationBlock.getEndLine()) .setUnit(duplicationBlock.getStartTokenIndex(), duplicationBlock.getEndTokenIndex()) .build(); indexInFile++; return block; } }
.setIndexInFile(0) .setLines(originBlock1.getStartLine(), originBlock1.getEndLine()) .setUnit(originBlock1.getStartTokenIndex(), originBlock1.getEndTokenIndex()) .build()); assertThat(originBlocksByIndex.get(1)).isEqualTo( .setIndexInFile(1) .setLines(originBlock2.getStartLine(), originBlock2.getEndLine()) .setUnit(originBlock2.getStartTokenIndex(), originBlock2.getEndTokenIndex()) .build());
.setIndexInFile(0) .setLines(originBlock.getStartLine(), originBlock.getEndLine()) .setUnit(originBlock.getStartTokenIndex(), originBlock.getEndTokenIndex()) .build()), asList(