From 09232ff6b0ea19e850482f3a87ac6ef1c063c759 Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Wed, 10 Jan 2018 13:52:19 +0100 Subject: rename JSS modules --- .../JavaParserInterfaceDeclarationTest.java | 826 +++++++++++++++++++++ 1 file changed, 826 insertions(+) create mode 100644 javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java') diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java new file mode 100644 index 000000000..d31c1f8bf --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java @@ -0,0 +1,826 @@ +/* + * Copyright 2016 Federico Tomassetti + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.github.javaparser.symbolsolver.javaparsermodel.declarations; + +import com.github.javaparser.symbolsolver.AbstractTest; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; + +import static org.junit.Assert.assertEquals; + +public class JavaParserInterfaceDeclarationTest extends AbstractTest { + + private TypeSolver typeSolver; + + @Before + public void setup() { + File srcNewCode = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core")); + CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver(); + combinedTypeSolverNewCode.add(new ReflectionTypeSolver()); + combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode)); + combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-generated-sources")))); + typeSolver = combinedTypeSolverNewCode; + } + + /// + /// Test misc + /// + + @Test + public void testIsClass() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(false, nodeWithAnnotations.isClass()); + } + + @Test + public void testIsInterface() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(true, nodeWithAnnotations.isInterface()); + } + + @Test + public void testIsEnum() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(false, nodeWithAnnotations.isEnum()); + } + + @Test + public void testIsTypeVariable() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(false, nodeWithAnnotations.isTypeParameter()); + } + + @Test + public void testIsType() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(true, nodeWithAnnotations.isType()); + } + + @Test + public void testAsType() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(nodeWithAnnotations, nodeWithAnnotations.asType()); + } + + @Test(expected = UnsupportedOperationException.class) + public void testAsClass() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(nodeWithAnnotations, nodeWithAnnotations.asClass()); + } + + @Test + public void testAsInterface() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(nodeWithAnnotations, nodeWithAnnotations.asInterface()); + } + + @Test(expected = UnsupportedOperationException.class) + public void testAsEnum() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + nodeWithAnnotations.asEnum(); + } + + @Test + public void testGetPackageName() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals("com.github.javaparser.ast.nodeTypes", nodeWithAnnotations.getPackageName()); + } + + @Test + public void testGetClassName() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals("NodeWithAnnotations", nodeWithAnnotations.getClassName()); + } + + @Test + public void testGetQualifiedName() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", nodeWithAnnotations.getQualifiedName()); + } + + /// + /// Test ancestors + /// + + /*@Test + public void testGetSuperclassWithoutTypeParameters() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName()); + } + + @Test + public void testGetSuperclassWithTypeParameters() { + JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + assertEquals("com.github.javaparser.ast.body.BodyDeclaration", compilationUnit.getSuperClass().getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); + } + + @Test + public void testGetAllSuperclassesWithoutTypeParameters() { + JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit"); + assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); + } + + @Test + public void testGetAllSuperclassesWithTypeParameters() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + assertEquals(3, constructorDeclaration.getAllSuperClasses().size()); + + ReferenceType ancestor = null; + + ancestor = constructorDeclaration.getAllSuperClasses().get(0); + assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllSuperClasses().get(1); + assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName()); + + ancestor = constructorDeclaration.getAllSuperClasses().get(2); + assertEquals("java.lang.Object", ancestor.getQualifiedName()); + } + + @Test + public void testGetInterfacesWithoutParameters() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); + + JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration"); + assertEquals(ImmutableSet.of("com.github.javaparser.ast.DocumentableNode"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); + } + + @Test + public void testGetInterfacesWithParameters() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + assertEquals(7, constructorDeclaration.getInterfaces().size()); + + ReferenceType interfaze = null; + + interfaze = constructorDeclaration.getInterfaces().get(0); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getInterfaces().get(1); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName()); + + interfaze = constructorDeclaration.getInterfaces().get(2); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getInterfaces().get(3); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getInterfaces().get(4); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getInterfaces().get(5); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getInterfaces().get(6); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); + } + + @Test + public void testGetAllInterfacesWithoutParameters() { + JavaParserInterfaceDeclaration nodeWithAnnotations = (JavaParserInterfaceDeclaration) typeSolver.solveType("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations"); + assertEquals(ImmutableSet.of("java.lang.Cloneable"), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); + + JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration"); + assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.NamedNode", "com.github.javaparser.ast.body.AnnotableNode", "com.github.javaparser.ast.DocumentableNode"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); + } + + @Test + public void testGetAllInterfacesWithParameters() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + assertEquals(9, constructorDeclaration.getAllInterfaces().size()); + + ReferenceType interfaze = null; + + interfaze = constructorDeclaration.getAllInterfaces().get(0); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(1); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(2); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(3); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(4); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(5); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(6); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(7); + assertEquals("java.lang.Cloneable", interfaze.getQualifiedName()); + + interfaze = constructorDeclaration.getAllInterfaces().get(8); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName()); + } + + @Test + public void testGetAncestorsWithTypeParameters() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + assertEquals(8, constructorDeclaration.getAncestors().size()); + + ReferenceType ancestor = null; + + ancestor = constructorDeclaration.getAncestors().get(0); + assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(1); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(2); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(3); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(4); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(5); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(6); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAncestors().get(7); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); + } + + @Test + public void testGetAllAncestorsWithoutTypeParameters() { + JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit"); + assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); + } + + @Test + public void testGetAllAncestorsWithTypeParameters() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + assertEquals(12, constructorDeclaration.getAllAncestors().size()); + + ReferenceType ancestor = null; + + ancestor = constructorDeclaration.getAllAncestors().get(0); + assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(1); + assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(2); + assertEquals("java.lang.Cloneable", ancestor.getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(3); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(4); + assertEquals("java.lang.Object", ancestor.getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(5); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(6); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(7); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(8); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(9); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(10); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); + + ancestor = constructorDeclaration.getAllAncestors().get(11); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); + } + + /// + /// Test fields + /// + + @Test + public void testGetFieldForExistingField() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + FieldDeclaration fieldDeclaration = null; + + // declared field + fieldDeclaration = constructorDeclaration.getField("modifiers"); + assertEquals("modifiers", fieldDeclaration.getName()); + assertEquals("java.util.EnumSet", fieldDeclaration.getType().asReferenceType().getQualifiedName()); + assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel()); + assertEquals(false, fieldDeclaration.isStatic()); + + // inherited field + fieldDeclaration = constructorDeclaration.getField("annotations"); + assertEquals("annotations", fieldDeclaration.getName()); + assertEquals("java.util.List", fieldDeclaration.getType().asReferenceType().getQualifiedName()); + assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel()); + } + + @Test(expected = UnsolvedSymbolException.class) + public void testGetFieldForUnexistingField() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + constructorDeclaration.getField("unexisting"); + } + + @Test + public void testGetAllFields() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + List allFields = constructorDeclaration.getAllFields(); + assertEquals(16, allFields.size()); + + FieldDeclaration fieldDeclaration = null; + + fieldDeclaration = allFields.get(0); + assertEquals("modifiers", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(1); + assertEquals("typeParameters", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(2); + assertEquals("name", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(3); + assertEquals("parameters", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(4); + assertEquals("throws_", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(5); + assertEquals("body", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(6); + assertEquals("annotations", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(7); + assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(8); + assertEquals("range", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(9); + assertEquals("parentNode", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(10); + assertEquals("childrenNodes", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(11); + assertEquals("orphanComments", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(12); + assertEquals("userData", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(13); + assertEquals("comment", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(14); + assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(15); + assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName()); + } + + @Test + public void testGetAllStaticFields() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + List allFields = constructorDeclaration.getAllStaticFields(); + assertEquals(3, allFields.size()); + + FieldDeclaration fieldDeclaration = null; + + fieldDeclaration = allFields.get(0); + assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(1); + assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(2); + assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName()); + } + + @Test + public void testGetAllNonStaticFields() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + List allFields = constructorDeclaration.getAllNonStaticFields(); + assertEquals(13, allFields.size()); + + FieldDeclaration fieldDeclaration = null; + + fieldDeclaration = allFields.get(0); + assertEquals("modifiers", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(1); + assertEquals("typeParameters", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(2); + assertEquals("name", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(3); + assertEquals("parameters", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(4); + assertEquals("throws_", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(5); + assertEquals("body", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(6); + assertEquals("annotations", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(7); + assertEquals("range", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(8); + assertEquals("parentNode", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(9); + assertEquals("childrenNodes", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(10); + assertEquals("orphanComments", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(11); + assertEquals("userData", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(12); + assertEquals("comment", fieldDeclaration.getName()); + } + + @Test + public void testGetDeclaredFields() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + List allFields = constructorDeclaration.getDeclaredFields(); + assertEquals(6, allFields.size()); + + FieldDeclaration fieldDeclaration = null; + + fieldDeclaration = allFields.get(0); + assertEquals("modifiers", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(1); + assertEquals("typeParameters", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(2); + assertEquals("name", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(3); + assertEquals("parameters", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(4); + assertEquals("throws_", fieldDeclaration.getName()); + + fieldDeclaration = allFields.get(5); + assertEquals("body", fieldDeclaration.getName()); + } + + /// + /// Test methods + /// + + @Test + public void testGetDeclaredMethods() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + Set allMethods = constructorDeclaration.getDeclaredMethods(); + assertEquals(20, allMethods.size()); + + List sortedMethods = allMethods.stream() + .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature())) + .collect(Collectors.toList()); + + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor, A)", sortedMethods.get(0).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor, A)", sortedMethods.get(1).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", sortedMethods.get(2).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", sortedMethods.get(3).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", sortedMethods.get(4).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", sortedMethods.get(5).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", sortedMethods.get(6).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", sortedMethods.get(7).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getName()", sortedMethods.get(8).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", sortedMethods.get(9).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", sortedMethods.get(10).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", sortedMethods.get(11).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", sortedMethods.get(12).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", sortedMethods.get(13).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet)", sortedMethods.get(14).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", sortedMethods.get(15).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", sortedMethods.get(16).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List)", sortedMethods.get(17).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List)", sortedMethods.get(18).getQualifiedSignature()); + assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List)", sortedMethods.get(19).getQualifiedSignature()); + } + + @Test + public void testGetAllMethods() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + Set allMethods = constructorDeclaration.getAllMethods(); + + List sortedMethods = allMethods.stream() + .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature())) + .collect(Collectors.toList()); + + List signatures = sortedMethods.stream().map(m -> m.getQualifiedSignature()).collect(Collectors.toList()); + + assertEquals(ImmutableList.of("com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)", + "com.github.javaparser.ast.Node.clone()", + "com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)", + "com.github.javaparser.ast.Node.equals(java.lang.Object)", + "com.github.javaparser.ast.Node.getAllContainedComments()", + "com.github.javaparser.ast.Node.getBegin()", + "com.github.javaparser.ast.Node.getChildrenNodes()", + "com.github.javaparser.ast.Node.getComment()", + "com.github.javaparser.ast.Node.getEnd()", + "com.github.javaparser.ast.Node.getNodesByType(java.lang.Class)", + "com.github.javaparser.ast.Node.getOrphanComments()", + "com.github.javaparser.ast.Node.getParentNode()", + "com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class)", + "com.github.javaparser.ast.Node.getRange()", + "com.github.javaparser.ast.Node.getUserData(com.github.javaparser.ast.UserDataKey)", + "com.github.javaparser.ast.Node.hasComment()", + "com.github.javaparser.ast.Node.hashCode()", + "com.github.javaparser.ast.Node.isPositionedAfter(com.github.javaparser.Position)", + "com.github.javaparser.ast.Node.isPositionedBefore(com.github.javaparser.Position)", + "com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)", + "com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List)", + "com.github.javaparser.ast.Node.setBegin(com.github.javaparser.Position)", + "com.github.javaparser.ast.Node.setBlockComment(java.lang.String)", + "com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)", + "com.github.javaparser.ast.Node.setEnd(com.github.javaparser.Position)", + "com.github.javaparser.ast.Node.setLineComment(java.lang.String)", + "com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)", + "com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)", + "com.github.javaparser.ast.Node.setUserData(com.github.javaparser.ast.UserDataKey, M)", + "com.github.javaparser.ast.Node.toString()", + "com.github.javaparser.ast.Node.toStringWithoutComments()", + "com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class)", + "com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()", + "com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List)", + "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor, A)", + "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor, A)", + "com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", + "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", + "com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getName()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", + "com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", + "com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", + "com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet)", + "com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", + "com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", + "com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List)", + "com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List)", + "com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.Class, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.String, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByClass(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByName(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.createBody()", + "com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.setJavaDocComment(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.addModifier(com.github.javaparser.ast.Modifier...)", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isAbstract()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isFinal()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isNative()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPrivate()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isProtected()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPublic()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStrictfp()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isSynchronized()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isTransient()", + "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isVolatile()", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.body.Parameter)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.Class, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.String, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.body.Parameter)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.Class, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.String, java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByName(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.String)", + "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(com.github.javaparser.ast.type.ReferenceType)", + "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class)", + "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", + "java.lang.Object.finalize()", + "java.lang.Object.getClass()", + "java.lang.Object.notify()", + "java.lang.Object.notifyAll()", + "java.lang.Object.registerNatives()", + "java.lang.Object.wait()", + "java.lang.Object.wait(long)", + "java.lang.Object.wait(long, int)"), signatures); + } + + /// + /// Test constructors + /// + + @Test + public void testGetConstructors() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + List constructors = constructorDeclaration.getConstructors(); + assertEquals(4, constructors.size()); + + assertEquals("ConstructorDeclaration()", constructors.get(0).getSignature()); + assertEquals("ConstructorDeclaration(java.util.EnumSet, java.lang.String)", constructors.get(1).getSignature()); + assertEquals("ConstructorDeclaration(java.util.EnumSet, java.util.List, java.util.List, java.lang.String, java.util.List, java.util.List, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(2).getSignature()); + assertEquals("ConstructorDeclaration(com.github.javaparser.Range, java.util.EnumSet, java.util.List, java.util.List, java.lang.String, java.util.List, java.util.List, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(3).getSignature()); + } + + /// + /// Resolution + /// + + //SymbolReference solveMethod(String name, List parameterTypes); + @Test + public void testSolveMethodExisting() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = null; + + res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of()); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", res.getCorrespondingDeclaration().getQualifiedSignature()); + + res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(RuntimeException.class.getClass(), typeSolverNewCode))); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class)", res.getCorrespondingDeclaration().getQualifiedSignature()); + + res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode))); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", res.getCorrespondingDeclaration().getQualifiedSignature()); + + // This is solved because it is raw + res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode))); + assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class)", res.getCorrespondingDeclaration().getQualifiedSignature()); + } + + @Test + public void testSolveMethodNotExisting() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = null; + + res = constructorDeclaration.solveMethod("unexistingMethod", ImmutableList.of()); + assertEquals(false, res.isSolved()); + + res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of(PrimitiveType.BOOLEAN)); + assertEquals(false, res.isSolved()); + } + + @Test + public void testSolveMethodNotExistingBecauseOfTypeParameters() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = null; + + ReferenceType stringType = (ReferenceType) ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode); + ReferenceType rawClassType = (ReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode); + ReferenceType classOfStringType = (ReferenceType) rawClassType.replaceTypeVariables("T", stringType); + res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(classOfStringType)); + assertEquals(false, res.isSolved()); + } + + @Test + public void testSolveSymbolUnexisting() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = constructorDeclaration.solveSymbol("unexisting", typeSolver); + assertEquals(false, res.isSolved()); + } + + @Test + public void testSolveSymbolToDeclaredField() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = constructorDeclaration.solveSymbol("name", typeSolver); + assertEquals(true, res.isSolved()); + assertEquals(true, res.getCorrespondingDeclaration().isField()); + } + + @Test + public void testSolveSymbolToInheritedPublicField() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = constructorDeclaration.solveSymbol("NODE_BY_BEGIN_POSITION", typeSolver); + assertEquals(true, res.isSolved()); + assertEquals(true, res.getCorrespondingDeclaration().isField()); + } + + @Test + public void testSolveSymbolToInheritedPrivateField() { + JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); + + SymbolReference res = constructorDeclaration.solveSymbol("parentNode", typeSolver); + assertEquals(false, res.isSolved()); + } + + /// + /// Assignability + /// + + // boolean isAssignableBy(Type type); + + // boolean canBeAssignedTo(TypeDeclaration other) + + // boolean isAssignableBy(TypeDeclaration other); + + /// + /// Annotations + /// + + // hasDirectlyAnnotation + + // hasAnnotation + + /// + /// + /// + + // List getTypeParameters(); + + // AccessLevel accessLevel(); + + /// + /// Containment + /// + + // Set internalTypes() + + // Optional containerType()*/ +} -- cgit v1.2.3 From 9528039468accca4734ee3b35670bd1d52369e4c Mon Sep 17 00:00:00 2001 From: Danny van Bruggen Date: Sat, 27 Jan 2018 14:26:57 +0100 Subject: Put aside old JavaParser source code --- .../declarations/JavaParserInterfaceDeclarationTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java') diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java index d31c1f8bf..cf5e5802b 100644 --- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java +++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclarationTest.java @@ -34,11 +34,11 @@ public class JavaParserInterfaceDeclarationTest extends AbstractTest { @Before public void setup() { - File srcNewCode = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core")); + File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core")); CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver(); combinedTypeSolverNewCode.add(new ReflectionTypeSolver()); combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode)); - combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-generated-sources")))); + combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources")))); typeSolver = combinedTypeSolverNewCode; } -- cgit v1.2.3