diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AnnotationIndexerTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AnnotationIndexerTest.java index 7f5edada0..da6b784ea 100644 --- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AnnotationIndexerTest.java +++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AnnotationIndexerTest.java @@ -11,13 +11,14 @@ package org.springframework.ide.vscode.boot.java.utils.test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.io.File; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; -import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.SymbolInformation; import org.junit.Before; import org.junit.Test; @@ -60,14 +61,14 @@ public class AnnotationIndexerTest { String uriPrefix = "file://" + directory.getAbsolutePath(); - assertSymbol(allSymbols.get(0), "@SpringBootApplication", uriPrefix + "/src/main/java/org/test/MainClass.java", 6, 0, 6, 22); - assertSymbol(allSymbols.get(1), "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 17, 1, 17, 41); - assertSymbol(allSymbols.get(2), "@/foo-root-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 24, 0, 24, 36); - assertSymbol(allSymbols.get(3), "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 27, 1, 27, 41); - assertSymbol(allSymbols.get(4), "@/mapping1 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 6, 1, 6, 28); - assertSymbol(allSymbols.get(5), "@/mapping2 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 11, 1, 11, 28); - assertSymbol(allSymbols.get(6), "@/classlevel -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 4, 0, 4, 30); - assertSymbol(allSymbols.get(7), "@/mapping-subpackage -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 7, 1, 7, 38); + assertTrue(containsSymbol(allSymbols, "@SpringBootApplication", uriPrefix + "/src/main/java/org/test/MainClass.java", 6, 0, 6, 22)); + assertTrue(containsSymbol(allSymbols, "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 17, 1, 17, 41)); + assertTrue(containsSymbol(allSymbols, "@/foo-root-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 24, 0, 24, 36)); + assertTrue(containsSymbol(allSymbols, "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 27, 1, 27, 41)); + assertTrue(containsSymbol(allSymbols, "@/mapping1 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 6, 1, 6, 28)); + assertTrue(containsSymbol(allSymbols, "@/mapping2 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 11, 1, 11, 28)); + assertTrue(containsSymbol(allSymbols, "@/classlevel -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 4, 0, 4, 30)); + assertTrue(containsSymbol(allSymbols, "@/mapping-subpackage -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 7, 1, 7, 38)); } @Test @@ -82,26 +83,31 @@ public class AnnotationIndexerTest { String uriPrefix = "file://" + directory.getAbsolutePath() + "/test-annotation-indexing"; - assertSymbol(allSymbols.get(0), "@SpringBootApplication", uriPrefix + "/src/main/java/org/test/MainClass.java", 6, 0, 6, 22); - assertSymbol(allSymbols.get(1), "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 17, 1, 17, 41); - assertSymbol(allSymbols.get(2), "@/foo-root-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 24, 0, 24, 36); - assertSymbol(allSymbols.get(3), "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 27, 1, 27, 41); - assertSymbol(allSymbols.get(4), "@/mapping1 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 6, 1, 6, 28); - assertSymbol(allSymbols.get(5), "@/mapping2 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 11, 1, 11, 28); - assertSymbol(allSymbols.get(6), "@/classlevel -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 4, 0, 4, 30); - assertSymbol(allSymbols.get(7), "@/mapping-subpackage -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 7, 1, 7, 38); + assertTrue(containsSymbol(allSymbols, "@SpringBootApplication", uriPrefix + "/src/main/java/org/test/MainClass.java", 6, 0, 6, 22)); + assertTrue(containsSymbol(allSymbols, "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 17, 1, 17, 41)); + assertTrue(containsSymbol(allSymbols, "@/foo-root-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 24, 0, 24, 36)); + assertTrue(containsSymbol(allSymbols, "@/embedded-foo-mapping -- (no method defined)", uriPrefix + "/src/main/java/org/test/MainClass.java", 27, 1, 27, 41)); + assertTrue(containsSymbol(allSymbols, "@/mapping1 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 6, 1, 6, 28)); + assertTrue(containsSymbol(allSymbols, "@/mapping2 -- (no method defined)", uriPrefix + "/src/main/java/org/test/SimpleMappingClass.java", 11, 1, 11, 28)); + assertTrue(containsSymbol(allSymbols, "@/classlevel -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 4, 0, 4, 30)); + assertTrue(containsSymbol(allSymbols, "@/mapping-subpackage -- (no method defined)", uriPrefix + "/src/main/java/org/test/sub/MappingClassSubpackage.java", 7, 1, 7, 38)); } - private void assertSymbol(SymbolInformation symbol, String name, String uri, int startLine, int startCHaracter, int endLine, int endCharacter) { - assertEquals(name, symbol.getName()); + private boolean containsSymbol(List symbols, String name, String uri, int startLine, int startCHaracter, int endLine, int endCharacter) { + for (Iterator iterator = symbols.iterator(); iterator.hasNext();) { + SymbolInformation symbol = iterator.next(); - Location location = symbol.getLocation(); - assertEquals("symbol: " + symbol.getName(), uri, location.getUri()); - assertEquals("symbol: " + symbol.getName(), startLine, location.getRange().getStart().getLine()); - assertEquals("symbol: " + symbol.getName(), startCHaracter, location.getRange().getStart().getCharacter()); - assertEquals("symbol: " + symbol.getName(), endLine, location.getRange().getEnd().getLine()); - assertEquals("symbol: " + symbol.getName(), endCharacter, location.getRange().getEnd().getCharacter()); + if (symbol.getName().equals(name) + && symbol.getLocation().getUri().equals(uri) + && symbol.getLocation().getRange().getStart().getLine() == startLine + && symbol.getLocation().getRange().getStart().getCharacter() == startCHaracter + && symbol.getLocation().getRange().getEnd().getLine() == endLine + && symbol.getLocation().getRange().getEnd().getCharacter() == endCharacter) { + return true; + } + } + return false; } }