blob: 8de0e239152cb04d0572d98e519fca25189ced47 [file] [log] [blame]
/*
* 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.reflectionmodel;
import com.github.javaparser.ast.AccessSpecifier;
import com.github.javaparser.resolution.declarations.*;
import com.github.javaparser.resolution.types.ResolvedReferenceType;
import com.github.javaparser.resolution.types.ResolvedTypeVariable;
import com.github.javaparser.symbolsolver.AbstractTest;
import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.junit.Test;
import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class ReflectionClassDeclarationTest extends AbstractTest {
private TypeSolver typeResolver = new ReflectionTypeSolver(false);
@Test
public void testIsClass() {
class Foo<E> {
E field;
}
class Bar extends Foo<String> {
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
assertEquals(true, foo.isClass());
assertEquals(true, bar.isClass());
}
@Test
public void testGetSuperclassSimpleImplicit() {
class Foo<E> {
E field;
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
assertEquals(Object.class.getCanonicalName(), foo.getSuperClass().getQualifiedName());
assertEquals(Collections.emptyList(), foo.getSuperClass().typeParametersValues());
}
@Test
public void testGetSuperclassSimple() {
class Bar {
}
class Foo<E> extends Bar {
E field;
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
assertEquals("Bar", foo.getSuperClass().getTypeDeclaration().getName());
assertEquals(Collections.emptyList(), foo.getSuperClass().typeParametersValues());
}
@Test
public void testGetSuperclassWithGenericSimple() {
class Foo<E> {
E field;
}
class Bar extends Foo<String> {
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
assertEquals("Foo", bar.getSuperClass().getTypeDeclaration().getName());
assertEquals(1, bar.getSuperClass().typeParametersValues().size());
assertEquals(String.class.getCanonicalName(), bar.getSuperClass().typeParametersValues().get(0).asReferenceType().getQualifiedName());
}
@Test
public void testGetSuperclassWithGenericInheritanceSameName() {
class Foo<E> {
E field;
}
class Bar<E> extends Foo<E> {
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
assertEquals("Foo", bar.getSuperClass().getTypeDeclaration().getName());
assertEquals(1, bar.getSuperClass().typeParametersValues().size());
assertEquals(true, bar.getSuperClass().typeParametersValues().get(0).isTypeVariable());
assertEquals("E", bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().getName());
assertEquals(true, bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().declaredOnType());
assertEquals(false, bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().declaredOnMethod());
assertTrue(bar.getSuperClass().typeParametersValues().get(0).asTypeParameter().getQualifiedName().endsWith("Bar.E"));
}
@Test
public void testGetSuperclassWithGenericInheritanceDifferentName() {
class Foo<E> {
E field;
}
class Bar extends Foo<String> {
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
ResolvedClassDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
assertEquals(true, foo.isClass());
assertEquals(true, bar.isClass());
}
@Test
public void testGetFieldDeclarationTypeVariableInheritance() {
class Foo<E> {
E field;
}
class Bar extends Foo<String> {
}
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedReferenceTypeDeclaration foo = new ReflectionClassDeclaration(Foo.class, typeResolver);
ResolvedReferenceTypeDeclaration bar = new ReflectionClassDeclaration(Bar.class, typeResolver);
ResolvedFieldDeclaration fooField = foo.getField("field");
assertEquals(true, fooField.getType().isTypeVariable());
assertEquals("E", fooField.getType().asTypeParameter().getName());
ResolvedFieldDeclaration barField = bar.getField("field");
assertEquals(true, barField.getType().isReferenceType());
assertEquals(String.class.getCanonicalName(), barField.getType().asReferenceType().getQualifiedName());
}
@Test
public void testGetDeclaredMethods() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedReferenceTypeDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
List<ResolvedMethodDeclaration> methods = string.getDeclaredMethods().stream()
.filter(m -> m.accessSpecifier() != AccessSpecifier.PRIVATE && m.accessSpecifier() != AccessSpecifier.DEFAULT)
.sorted((a, b) -> a.getName().compareTo(b.getName()))
.collect(Collectors.toList());
if (isJava9()) {
assertEquals(69, methods.size());
} else {
assertEquals(67, methods.size());
}
assertEquals("charAt", methods.get(0).getName());
assertEquals(false, methods.get(0).isAbstract());
assertEquals(1, methods.get(0).getNumberOfParams());
assertEquals("int", methods.get(0).getParam(0).getType().describe());
if (isJava9()) {
assertEquals("compareTo", methods.get(6).getName());
assertEquals(false, methods.get(6).isAbstract());
assertEquals(1, methods.get(6).getNumberOfParams());
assertEquals("java.lang.String", methods.get(6).getParam(0).getType().describe());
} else {
assertEquals("concat", methods.get(6).getName());
assertEquals(false, methods.get(6).isAbstract());
assertEquals(1, methods.get(6).getNumberOfParams());
assertEquals("java.lang.String", methods.get(6).getParam(0).getType().describe());
}
}
@Test
public void testGetInterfaces() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
// Serializable, Cloneable, List<E>, RandomAccess
assertEquals(ImmutableSet.of(Serializable.class.getCanonicalName(),
Cloneable.class.getCanonicalName(),
List.class.getCanonicalName(),
RandomAccess.class.getCanonicalName()),
arraylist.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
}
@Test
public void testGetAllInterfaces() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
// Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
assertEquals(ImmutableSet.of(Serializable.class.getCanonicalName(),
Cloneable.class.getCanonicalName(),
List.class.getCanonicalName(),
RandomAccess.class.getCanonicalName(),
Collection.class.getCanonicalName(),
Iterable.class.getCanonicalName()),
arraylist.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
}
@Test
public void testGetAllSuperclasses() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
assertEquals(ImmutableSet.of(Object.class.getCanonicalName(),
AbstractCollection.class.getCanonicalName(),
AbstractList.class.getCanonicalName()),
arraylist.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
assertEquals(ImmutableSet.of(Object.class.getCanonicalName()),
string.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
}
@Test
public void testGetPackageName() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
assertEquals("java.util", arraylist.getPackageName());
ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
assertEquals("java.lang", string.getPackageName());
}
@Test
public void testGetClassName() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
assertEquals("ArrayList", arraylist.getClassName());
ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
assertEquals("String", string.getClassName());
}
@Test
public void testGetQualifiedName() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
assertEquals("java.util.ArrayList", arraylist.getQualifiedName());
ResolvedClassDeclaration string = new ReflectionClassDeclaration(String.class, typeResolver);
assertEquals("java.lang.String", string.getQualifiedName());
}
// solveMethod
// isAssignableBy
// canBeAssignedTo
// hasField
// solveSymbol
// solveType
// getDeclaredMethods
// getAllMethods
@Test
public void testGetAllFields() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
assertEquals(ImmutableSet.of("modCount", "serialVersionUID", "MAX_ARRAY_SIZE", "size", "elementData", "EMPTY_ELEMENTDATA", "DEFAULTCAPACITY_EMPTY_ELEMENTDATA", "DEFAULT_CAPACITY"),
arraylist.getAllFields().stream().map(ResolvedDeclaration::getName).collect(Collectors.toSet()));
}
///
/// Test ancestors
///
@Test
public void testAllAncestors() {
TypeSolver typeResolver = new ReflectionTypeSolver();
ResolvedClassDeclaration arraylist = new ReflectionClassDeclaration(ArrayList.class, typeResolver);
Map<String, ResolvedReferenceType> ancestors = new HashMap<>();
arraylist.getAllAncestors().forEach(a -> ancestors.put(a.getQualifiedName(), a));
assertEquals(9, ancestors.size());
ResolvedTypeVariable typeVariable = new ResolvedTypeVariable(arraylist.getTypeParameters().get(0));
assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(RandomAccess.class, typeResolver), typeResolver), ancestors.get("java.util.RandomAccess"));
assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractCollection.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.AbstractCollection"));
assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(List.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.List"));
assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Cloneable.class, typeResolver), typeResolver), ancestors.get("java.lang.Cloneable"));
assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Collection.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.Collection"));
assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(AbstractList.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.util.AbstractList"));
assertEquals(new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeResolver), typeResolver), ancestors.get("java.lang.Object"));
assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Iterable.class, typeResolver), ImmutableList.of(typeVariable), typeResolver), ancestors.get("java.lang.Iterable"));
assertEquals(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(Serializable.class, typeResolver), typeResolver), ancestors.get("java.io.Serializable"));
}
@Test
public void testGetSuperclassWithoutTypeParameters() {
ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName());
}
@Test
public void testGetSuperclassWithTypeParameters() {
ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
assertEquals("com.github.javaparser.ast.body.CallableDeclaration", compilationUnit.getSuperClass().getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
}
@Test
public void testGetAllSuperclassesWithoutTypeParameters() {
ReflectionClassDeclaration cu = (ReflectionClassDeclaration) typeResolver.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() {
ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
assertEquals(4, constructorDeclaration.getAllSuperClasses().size());
assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.body.CallableDeclaration")));
assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.body.BodyDeclaration")));
assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("com.github.javaparser.ast.Node")));
assertEquals(true, constructorDeclaration.getAllSuperClasses().stream().anyMatch(s -> s.getQualifiedName().equals("java.lang.Object")));
ResolvedReferenceType ancestor;
ancestor = constructorDeclaration.getAllSuperClasses().get(0);
assertEquals("com.github.javaparser.ast.body.CallableDeclaration", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
ancestor = constructorDeclaration.getAllSuperClasses().get(1);
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(2);
assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
ancestor = constructorDeclaration.getAllSuperClasses().get(3);
assertEquals("java.lang.Object", ancestor.getQualifiedName());
}
@Test
public void testGetInterfacesWithoutParameters() {
ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
ReflectionClassDeclaration coid = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
assertEquals(ImmutableSet.of("com.github.javaparser.ast.nodeTypes.NodeWithExtends",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier",
"com.github.javaparser.ast.nodeTypes.NodeWithConstructors",
"com.github.javaparser.ast.nodeTypes.NodeWithImplements",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier",
"com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters",
"com.github.javaparser.resolution.Resolvable"),
coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
}
@Test
public void testGetInterfacesWithParameters() {
ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
System.out.println(constructorDeclaration.getInterfaces().stream().map(t -> t.getQualifiedName()).collect(Collectors.toList()));
assertEquals(8, constructorDeclaration.getInterfaces().size());
ResolvedReferenceType interfaze;
interfaze = constructorDeclaration.getInterfaces().get(0);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getInterfaces().get(1);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getInterfaces().get(2);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getInterfaces().get(3);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getInterfaces().get(5);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getInterfaces().get(6);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getInterfaces().get(7);
assertEquals("com.github.javaparser.resolution.Resolvable", interfaze.getQualifiedName());
}
@Test
public void testGetAllInterfacesWithoutParameters() {
ReflectionClassDeclaration compilationUnit = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.visitor.Visitable", "com.github.javaparser.ast.observer.Observable",
"com.github.javaparser.HasParentNode", "com.github.javaparser.ast.nodeTypes.NodeWithRange",
"com.github.javaparser.ast.nodeTypes.NodeWithTokenRange").stream().sorted().collect(Collectors.toList()),
compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).sorted().collect(Collectors.toList()));
ReflectionClassDeclaration coid = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration");
assertEquals(ImmutableSet.of("com.github.javaparser.ast.nodeTypes.NodeWithExtends",
"com.github.javaparser.ast.nodeTypes.NodeWithAnnotations",
"java.lang.Cloneable",
"com.github.javaparser.HasParentNode",
"com.github.javaparser.ast.visitor.Visitable",
"com.github.javaparser.ast.nodeTypes.NodeWithImplements",
"com.github.javaparser.ast.nodeTypes.NodeWithSimpleName",
"com.github.javaparser.ast.nodeTypes.NodeWithModifiers",
"com.github.javaparser.ast.nodeTypes.NodeWithJavadoc",
"com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters",
"com.github.javaparser.ast.nodeTypes.NodeWithMembers",
"com.github.javaparser.ast.observer.Observable",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers",
"com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier",
"com.github.javaparser.ast.nodeTypes.NodeWithRange",
"com.github.javaparser.ast.nodeTypes.NodeWithTokenRange",
"com.github.javaparser.ast.nodeTypes.NodeWithConstructors",
"com.github.javaparser.resolution.Resolvable"), coid.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
}
@Test
public void testGetAllInterfacesWithParameters() {
ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
List<ResolvedReferenceType> interfaces = constructorDeclaration.getAllInterfaces();
assertEquals(34, interfaces.size());
ResolvedReferenceType interfaze;
int i = 0;
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.resolution.Resolvable", interfaze.getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("java.lang.Cloneable", interfaze.getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.HasParentNode", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.Node", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.HasParentNode.T").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.observer.Observable", interfaze.getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.visitor.Visitable", interfaze.getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithRange", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.Node", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithRange.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.Node", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
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.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier.N").get().asReferenceType().getQualifiedName());
interfaze = constructorDeclaration.getAllInterfaces().get(i++);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier", interfaze.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier.N").get().asReferenceType().getQualifiedName());
}
@Test
public void testGetAncestorsWithTypeParameters() {
ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
assertEquals(9, constructorDeclaration.getAncestors().size());
ResolvedReferenceType ancestor;
List<ResolvedReferenceType> ancestors = constructorDeclaration.getAncestors();
ancestors.sort(Comparator.comparing(ResolvedReferenceType::getQualifiedName));
ancestor = ancestors.get(0);
assertEquals("com.github.javaparser.ast.body.CallableDeclaration", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(1);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(2);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(3);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(4);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(5);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(6);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(7);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.get(8);
assertEquals("com.github.javaparser.resolution.Resolvable", ancestor.getQualifiedName());
}
@Test
public void testGetAllAncestorsWithoutTypeParameters() {
ReflectionClassDeclaration cu = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.CompilationUnit");
assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.visitor.Visitable",
"com.github.javaparser.ast.observer.Observable", "com.github.javaparser.ast.Node",
"com.github.javaparser.ast.nodeTypes.NodeWithTokenRange", "java.lang.Object", "com.github.javaparser.HasParentNode",
"com.github.javaparser.ast.nodeTypes.NodeWithRange"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet()));
}
@Test
public void testGetAllAncestorsWithTypeParameters() {
ReflectionClassDeclaration constructorDeclaration = (ReflectionClassDeclaration) typeResolver.solveType("com.github.javaparser.ast.body.ConstructorDeclaration");
ResolvedReferenceType ancestor;
List<ResolvedReferenceType> ancestors = constructorDeclaration.getAllAncestors();
ancestors.sort(Comparator.comparing(ResolvedReferenceType::getQualifiedName));
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.HasParentNode", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.Node", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.HasParentNode.T").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName());
ancestor = ancestors.remove(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 = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.body.CallableDeclaration", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.CallableDeclaration.T").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
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.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithRange", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.Node", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithRange.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithSimpleName.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrownExceptions.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.Node", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTokenRange.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAccessModifiers.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier", ancestor.getQualifiedName());
assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier.N").get().asReferenceType().getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.observer.Observable", ancestor.getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.ast.visitor.Visitable", ancestor.getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("com.github.javaparser.resolution.Resolvable", ancestor.getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("java.lang.Cloneable", ancestor.getQualifiedName());
ancestor = ancestors.remove(0);
assertEquals("java.lang.Object", ancestor.getQualifiedName());
assertTrue(ancestors.isEmpty());
}
}