@Test public void testExecution() throws IOException { String content = "public class Foo {\n\n}"; createSourceFile(content); sensor.execute(context); assertThat(context.cpdTokens("foo:src/foo.xoo")).extracting("value", "startLine", "startUnit", "endUnit") .containsExactly( tuple("publicclassFoo{", 1, 1, 4), tuple("}", 3, 5, 5)); }
@Test public void testCpdTokens() { assertThat(tester.cpdTokens("foo:src/Foo.java")).isNull(); DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.java") .initMetadata("public class Foo {\n\n}") .build(); tester.newCpdTokens() .onFile(inputFile) .addToken(inputFile.newRange(0, 6), "public") .addToken(inputFile.newRange(7, 12), "class") .addToken(inputFile.newRange(13, 16), "$IDENTIFIER") .addToken(inputFile.newRange(17, 18), "{") .addToken(inputFile.newRange(3, 0, 3, 1), "}") .save(); assertThat(tester.cpdTokens("foo:src/Foo.java")).extracting("value", "startLine", "startUnit", "endUnit") .containsExactly( tuple("publicclass$IDENTIFIER{", 1, 1, 4), tuple("}", 3, 5, 5)); }
@Test void test() throws IOException { String filename = "lets.go"; String code = readTestResource(getClass(), filename); String codeJson = readTestResource(getClass(), filename + ".uast.json"); InputFile inputFile = createInputFile("lets.go", code); sensorContext.fileSystem().add(inputFile); CpdVisitor cpdVisitor = new CpdVisitor(sensorContext, inputFile); UastNode node = UastNode.from(new StringReader(codeJson)); cpdVisitor.scan(node); cpdVisitor.save(); List<TokensLine> tokensLines = sensorContext.cpdTokens("module:" + inputFile.filename()); assertThat(tokensLines).isNotNull().hasSize(5); assertThat(tokensLines).extracting("value").isEqualTo(Arrays.asList( "packagemain", "funcfun()string{", "a:=LITERAL", "returna", "}")); assertThat(tokensLines).extracting("startLine").isEqualTo(Arrays.asList(1, 3, 4, 5, 6)); }