From 74c8a799c3130ff108aa7cc27088c88e8dbf65e4 Mon Sep 17 00:00:00 2001 From: tsantalis Date: Sat, 6 Jul 2024 14:07:19 -0400 Subject: [PATCH] Comment locator tests --- .../util/CodeElementLocatorTest.java | 37 +++++++++++++++++++ .../CodeElementLocatorWithLocalFilesTest.java | 31 ++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/src/test/java/org/codetracker/util/CodeElementLocatorTest.java b/src/test/java/org/codetracker/util/CodeElementLocatorTest.java index 500723c0bea..6ec48f67432 100644 --- a/src/test/java/org/codetracker/util/CodeElementLocatorTest.java +++ b/src/test/java/org/codetracker/util/CodeElementLocatorTest.java @@ -4,6 +4,7 @@ import org.codetracker.element.Attribute; import org.codetracker.element.Block; import org.codetracker.element.Class; +import org.codetracker.element.Comment; import org.codetracker.element.Method; import org.codetracker.element.Variable; import org.eclipse.jgit.lib.Repository; @@ -712,4 +713,40 @@ public void testClosingBracketClassLocator() throws Exception { assertTrue(((Class)codeElement).isClosingCurlyBracket()); } } + // Comment tests + @Test + public void testCommentInMethodLocator() throws Exception { + GitService gitService = new GitServiceImpl(); + final String filePath = "src/main/java/com/puppycrawl/tools/checkstyle/Main.java"; + final String commitId = "119fd4fb33bef9f5c66fc950396669af842c21a3"; + final int lineNumber = 660; + try (Repository repository = gitService.cloneIfNotExists(FOLDER_TO_CLONE + "checkstyle\\checkstyle", + "https://github.com/checkstyle/checkstyle.git")){ + CodeElementLocator locator = new CodeElementLocator(repository, commitId, filePath, lineNumber); + CodeElement codeElement = locator.locate(); + assertNotNull(codeElement); + assertEquals(codeElement.getClass(), Comment.class); + assertEquals(codeElement.getLocation().getCodeElementType(), CodeElementType.LINE_COMMENT); + assertEquals(codeElement.getLocation().getStartLine(), lineNumber); + assertEquals(((Comment)codeElement).getOperation().get().getName(), "listFiles"); + } + } + + @Test + public void testCommentInInnerClassMethodLocator() throws Exception { + GitService gitService = new GitServiceImpl(); + final String filePath = "src/main/java/com/puppycrawl/tools/checkstyle/ConfigurationLoader.java"; + final String commitId = "119fd4fb33bef9f5c66fc950396669af842c21a3"; + final int lineNumber = 607; + try (Repository repository = gitService.cloneIfNotExists(FOLDER_TO_CLONE + "checkstyle\\checkstyle", + "https://github.com/checkstyle/checkstyle.git")){ + CodeElementLocator locator = new CodeElementLocator(repository, commitId, filePath, lineNumber); + CodeElement codeElement = locator.locate(); + assertNotNull(codeElement); + assertEquals(codeElement.getClass(), Comment.class); + assertEquals(codeElement.getLocation().getCodeElementType(), CodeElementType.LINE_COMMENT); + assertEquals(codeElement.getLocation().getStartLine(), lineNumber); + assertEquals(((Comment)codeElement).getOperation().get().getName(), "startElement"); + } + } } diff --git a/src/test/java/org/codetracker/util/CodeElementLocatorWithLocalFilesTest.java b/src/test/java/org/codetracker/util/CodeElementLocatorWithLocalFilesTest.java index ccd2f5f104b..8004b023973 100644 --- a/src/test/java/org/codetracker/util/CodeElementLocatorWithLocalFilesTest.java +++ b/src/test/java/org/codetracker/util/CodeElementLocatorWithLocalFilesTest.java @@ -4,6 +4,7 @@ import org.codetracker.element.Attribute; import org.codetracker.element.Block; import org.codetracker.element.Class; +import org.codetracker.element.Comment; import org.codetracker.element.Method; import org.codetracker.element.Variable; import static org.junit.jupiter.api.Assertions.*; @@ -583,4 +584,34 @@ public void testClosingBracketClassLocator() throws Exception { assertEquals(codeElement.getLocation().getStartLine(), 60); assertTrue(((Class)codeElement).isClosingCurlyBracket()); } + // Comment tests + @Test + public void testCommentInMethodLocator() throws Exception { + final String cloneURL = "https://github.com/checkstyle/checkstyle.git"; + final String filePath = "src/main/java/com/puppycrawl/tools/checkstyle/Main.java"; + final String commitId = "119fd4fb33bef9f5c66fc950396669af842c21a3"; + final int lineNumber = 660; + CodeElementLocatorWithLocalFiles locator = new CodeElementLocatorWithLocalFiles(cloneURL, commitId, filePath, lineNumber); + CodeElement codeElement = locator.locate(); + assertNotNull(codeElement); + assertEquals(codeElement.getClass(), Comment.class); + assertEquals(codeElement.getLocation().getCodeElementType(), CodeElementType.LINE_COMMENT); + assertEquals(codeElement.getLocation().getStartLine(), lineNumber); + assertEquals(((Comment)codeElement).getOperation().get().getName(), "listFiles"); + } + + @Test + public void testCommentInInnerClassMethodLocator() throws Exception { + final String cloneURL = "https://github.com/checkstyle/checkstyle.git"; + final String filePath = "src/main/java/com/puppycrawl/tools/checkstyle/ConfigurationLoader.java"; + final String commitId = "119fd4fb33bef9f5c66fc950396669af842c21a3"; + final int lineNumber = 607; + CodeElementLocatorWithLocalFiles locator = new CodeElementLocatorWithLocalFiles(cloneURL, commitId, filePath, lineNumber); + CodeElement codeElement = locator.locate(); + assertNotNull(codeElement); + assertEquals(codeElement.getClass(), Comment.class); + assertEquals(codeElement.getLocation().getCodeElementType(), CodeElementType.LINE_COMMENT); + assertEquals(codeElement.getLocation().getStartLine(), lineNumber); + assertEquals(((Comment)codeElement).getOperation().get().getName(), "startElement"); + } }