@Test public void testReferences_catchStatement() throws IOException { File file = addFileToFolder(workspaceRoot, "Coordinates.groovy", "class Foo extends Throwable{}\n" + "try {\n" + " println \"Hello\"" + "}\n catch (Foo e1) {\n" + " println e1\n" + "}\n"); parser.parseAllSymbols(); // Class Foo Set<Location> expectedReferences = Sets.newHashSet(createLocation(file.toPath(), Ranges.createRange(3, 8, 3, 11))); // Get references when providing definition position assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 0, 6, false))); // Get references when providing position of usage assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 3, 9, false))); // TODO(#125): add a symbol for the exception variables and test here. }
@Test public void testReferences_typeInnerClassOneLine() throws IOException { // edge case on one line File innerClass = addFileToFolder(workspaceRoot, "AandB.groovy", "public class A {public static class B {}\n" + "A a\n" + "B b\n" + "}\n"); parser.parseAllSymbols(); // Identify type A correctly Set<Location> typeAExpectedResult = Sets.newHashSet( createLocation(innerClass.toPath(), Ranges.createRange(1, 0, 1, 1))); assertEquals(typeAExpectedResult, parser.findReferences(createReferenceParams(innerClass.toURI(), 0, 6, false))); // Identify type B correctly Set<Location> typeBExpectedResult = Sets.newHashSet( createLocation(innerClass.toPath(), Ranges.createRange(2, 0, 2, 1))); assertEquals(typeBExpectedResult, parser.findReferences(createReferenceParams(innerClass.toURI(), 0, 17, false))); }
assertEquals(NO_REFERENCES, parser.findReferences(createReferenceParams(file.toURI(), 7, 0, false))); assertEquals(NO_REFERENCES, parser.findReferences(createReferenceParams(file.toURI(), 10, 2, false))); assertEquals(expectedResult, parser.findReferences(createReferenceParams(file.toURI(), 13, 9, false)));
@Test public void testReferences_typeEnumOneLine() throws IOException { // edge case on one line File enumFile = addFileToFolder(workspaceRoot, "MyEnum.groovy", "enum MyEnum {ONE,TWO}\n"); File scriptFile = addFileToFolder(workspaceRoot, "MyScript.groovy", "MyEnum a\n\n"); parser.parseAllSymbols(); // Find one line enum correctly Set<Location> myEnumExpectedResult = Sets.newHashSet( createLocation(scriptFile.toPath(), Ranges.createRange(0, 0, 0, 6))); assertEquals(myEnumExpectedResult, parser.findReferences(createReferenceParams(enumFile.toURI(), 0, 6, false))); }
assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 2, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 1, 15, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 10, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 10, 31, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 12, 12, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 14, 11, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 1, 27, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 11, 15, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 10, 20, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 13, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 3, 7, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 11, 23, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 12, 23, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 13, 23, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 4, 15, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 14, 20, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 6, 15, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 15, 20, false)));
assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 2, 21, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 7, 12, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 9, 41, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 2, 30, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 4, 29, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 7, 18, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 1, 9, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 3, 47, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 5, 20, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 3, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 9, 50, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 8, 18, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 9, 25, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 4, 15, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 4, 22, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 4, 32, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(file.toURI(), 5, 26, false)));
createLocation(scriptFile.toPath(), Ranges.createRange(3, 3, 3, 6))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(catFile.toURI(), 0, 6, false))); parser.findReferences(createReferenceParams(scriptFile.toURI(), 0, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(scriptFile.toURI(), 2, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(scriptFile.toURI(), 2, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(scriptFile.toURI(), 3, 4, false))); parser.findReferences(createReferenceParams(scriptFile.toURI(), 0, 9, false))); parser.findReferences(createReferenceParams(scriptFile.toURI(), 1, 9, false))); createLocation(scriptFile.toPath(), Ranges.createRange(0, 0, 0, 3))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(catFile.toURI(), 0, 5, false))); parser.findReferences(createReferenceParams(scriptFile.toURI(), 2, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(scriptFile.toURI(), 2, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(scriptFile.toURI(), 3, 5, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(scriptFile.toURI(), 0, 2, false)));
createLocation(catFile.toPath(), Ranges.createRange(0, 0, 1, 0))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(catFile.toURI(), 0, 6, true))); parser.findReferences(createReferenceParams(scriptFile.toURI(), 0, 2, true))); parser.findReferences(createReferenceParams(scriptFile.toURI(), 0, 9, true)));
@Test public void testReferences_typeFields() throws IOException { File dogFile = addFileToFolder(workspaceRoot, "Dog.groovy", "class Dog {\n" + " Cat friend1;\n" + " Cat friend2;\n" + " Cat bark(Cat enemy) {\n" + " Cat myCat\n" + " println \"Bark! \" + enemy.name\n" + " return friend1\n" + " }\n" + "}\n"); File catFile = addFileToFolder(workspaceRoot, "Cat.groovy", "class Cat {\n" + " public String name = \"Bobby\"\n" + "}\n"); parser.parseAllSymbols(); // Dog should have no references assertEquals(NO_REFERENCES, parser.findReferences(createReferenceParams(dogFile.toURI(), 0, 7, false))); Set<Location> expectedResult = Sets.newHashSet( createLocation(dogFile.toPath(), Ranges.createRange(1, 3, 1, 6)), createLocation(dogFile.toPath(), Ranges.createRange(2, 3, 2, 6)), createLocation(dogFile.toPath(), Ranges.createRange(3, 3, 3, 6)), createLocation(dogFile.toPath(), Ranges.createRange(3, 12, 3, 15)), createLocation(dogFile.toPath(), Ranges.createRange(4, 6, 4, 9))); assertEquals(expectedResult, parser.findReferences(createReferenceParams(catFile.toURI(), 0, 7, false))); }
assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 0, 7, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 0, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 1, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 1, 18, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 2, 13, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 4, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 8, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 9, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 10, 2, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 2, 13, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 3, 13, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 13, 25, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 1, 18, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 4, 25, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 4, 15, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 3, 30, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 8, 10, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(test.toURI(), 6, 30, false))); assertEquals(expectedReferences, parser.findReferences(createReferenceParams(script.toURI(), 9, 10, false)));
@Test public void testReferences_typeEnum() throws IOException { File scriptFile = addFileToFolder(workspaceRoot, "MyScript.groovy", "Animal friend = Animal.CAT;\n" + "pet(friend1)\n" + "Animal pet(Animal animal) {\n" + " Animal myAnimal\n" + " println \"Pet the \" + animal\n" + " return animal\n" + "}\n" + "\n"); File animalFile = addFileToFolder(workspaceRoot, "Animal.groovy", "enum Animal {\n" + "CAT, DOG, BUNNY\n" + "}\n"); parser.parseAllSymbols(); Set<Location> expectedResult = Sets.newHashSet( createLocation(scriptFile.toPath(), Ranges.createRange(0, 0, 0, 6)), createLocation(scriptFile.toPath(), Ranges.createRange(0, 16, 0, 22)), createLocation(scriptFile.toPath(), Ranges.createRange(2, 0, 2, 6)), createLocation(scriptFile.toPath(), Ranges.createRange(2, 11, 2, 17)), createLocation(scriptFile.toPath(), Ranges.createRange(3, 3, 3, 9))); assertEquals(expectedResult, parser.findReferences(createReferenceParams(animalFile.toURI(), 0, 5, false))); }
parser.findReferences(createReferenceParams(extendedcoordinatesFile.toURI(), 0, 7, false))); parser.findReferences(createReferenceParams(extendedCoordinates2File.toURI(), 0, 7, false))); createLocation(extendedCoordinates2File.toPath(), Ranges.createRange(12, 6, 12, 17))); assertEquals(coordinatesExpectedResult, parser.findReferences(createReferenceParams(coordinatesFile.toURI(), 0, 9, false))); createLocation(coordinatesFile.toPath(), Ranges.createRange(0, 57, 0, 69))); assertEquals(icoordinatesExpectedResult, parser.findReferences(createReferenceParams(icoordinatesFile.toURI(), 0, 14, false))); createLocation(coordinatesFile.toPath(), Ranges.createRange(0, 0, 1, 0))); assertEquals(abstractCoordinatesExpectedResult, parser.findReferences(createReferenceParams(abstractcoordinatesFile.toURI(), 0, 19, false))); createLocation(icoordinatesFile.toPath(), Ranges.createRange(0, 31, 0, 48))); assertEquals(icoordinatesSuperExpectedResult, parser.findReferences(createReferenceParams(icoordinatesSuperFile.toURI(), 0, 13, false)));