1 /* 2 * Copyright 2016 Federico Tomassetti 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.github.javaparser.symbolsolver.javaparsermodel.declarations; 18 19 import com.github.javaparser.symbolsolver.AbstractTest; 20 import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; 21 import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; 22 import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; 23 import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; 24 import org.junit.Before; 25 import org.junit.Test; 26 27 import java.io.File; 28 29 import static org.junit.Assert.assertEquals; 30 31 public class JavaParserEnumDeclarationTest extends AbstractTest { 32 33 private TypeSolver typeSolver; 34 35 @Before 36 public void setup() { 37 File srcNewCode = adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-core")); 38 CombinedTypeSolver combinedTypeSolverNewCode = new CombinedTypeSolver(); 39 combinedTypeSolverNewCode.add(new ReflectionTypeSolver()); 40 combinedTypeSolverNewCode.add(new JavaParserTypeSolver(srcNewCode)); 41 combinedTypeSolverNewCode.add(new JavaParserTypeSolver(adaptPath(new File("src/test/test_sourcecode/javaparser_new_src/javaparser-generated-sources")))); 42 typeSolver = combinedTypeSolverNewCode; 43 } 44 45 /// 46 /// Test misc 47 /// 48 49 @Test 50 public void testIsClass() { 51 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 52 assertEquals(false, modifier.isClass()); 53 } 54 55 @Test 56 public void testIsInterface() { 57 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 58 assertEquals(false, modifier.isInterface()); 59 } 60 61 @Test 62 public void testIsEnum() { 63 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 64 assertEquals(true, modifier.isEnum()); 65 } 66 67 @Test 68 public void testIsTypeVariable() { 69 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 70 assertEquals(false, modifier.isTypeParameter()); 71 } 72 73 @Test 74 public void testIsType() { 75 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 76 assertEquals(true, modifier.isType()); 77 } 78 79 @Test 80 public void testAsType() { 81 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 82 assertEquals(modifier, modifier.asType()); 83 } 84 85 @Test(expected = UnsupportedOperationException.class) 86 public void testAsClass() { 87 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 88 modifier.asClass(); 89 } 90 91 @Test(expected = UnsupportedOperationException.class) 92 public void testAsInterface() { 93 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 94 modifier.asInterface(); 95 } 96 97 @Test 98 public void testAsEnum() { 99 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 100 assertEquals(modifier, modifier.asEnum()); 101 } 102 103 @Test 104 public void testGetPackageName() { 105 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 106 assertEquals("com.github.javaparser.ast", modifier.getPackageName()); 107 } 108 109 @Test 110 public void testGetClassName() { 111 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 112 assertEquals("Modifier", modifier.getClassName()); 113 } 114 115 @Test 116 public void testGetQualifiedName() { 117 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 118 assertEquals("com.github.javaparser.ast.Modifier", modifier.getQualifiedName()); 119 } 120 121 /// 122 /// Test ancestors 123 /// 124 125 /*@Test 126 public void testGetSuperclassWithoutTypeParameters() { 127 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 128 assertEquals("com.github.javaparser.ast.Node", compilationUnit.getSuperClass().getQualifiedName()); 129 } 130 131 @Test 132 public void testGetSuperclassWithTypeParameters() { 133 JavaParserClassDeclaration compilationUnit = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 134 assertEquals("com.github.javaparser.ast.body.BodyDeclaration", compilationUnit.getSuperClass().getQualifiedName()); 135 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", compilationUnit.getSuperClass().typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); 136 } 137 138 @Test 139 public void testGetAllSuperclassesWithoutTypeParameters() { 140 JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit"); 141 assertEquals(ImmutableSet.of("com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllSuperClasses().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); 142 } 143 144 @Test 145 public void testGetAllSuperclassesWithTypeParameters() { 146 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 147 assertEquals(3, constructorDeclaration.getAllSuperClasses().size()); 148 149 ReferenceType ancestor = null; 150 151 ancestor = constructorDeclaration.getAllSuperClasses().get(0); 152 assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName()); 153 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); 154 155 ancestor = constructorDeclaration.getAllSuperClasses().get(1); 156 assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName()); 157 158 ancestor = constructorDeclaration.getAllSuperClasses().get(2); 159 assertEquals("java.lang.Object", ancestor.getQualifiedName()); 160 } 161 162 @Test 163 public void testGetInterfacesWithoutParameters() { 164 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 165 assertEquals(ImmutableSet.of(), compilationUnit.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); 166 167 JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration"); 168 assertEquals(ImmutableSet.of("com.github.javaparser.ast.DocumentableNode"), coid.getInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); 169 } 170 171 @Test 172 public void testGetInterfacesWithParameters() { 173 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 174 assertEquals(7, constructorDeclaration.getInterfaces().size()); 175 176 ReferenceType interfaze = null; 177 178 interfaze = constructorDeclaration.getInterfaces().get(0); 179 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName()); 180 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); 181 182 interfaze = constructorDeclaration.getInterfaces().get(1); 183 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName()); 184 185 interfaze = constructorDeclaration.getInterfaces().get(2); 186 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName()); 187 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); 188 189 interfaze = constructorDeclaration.getInterfaces().get(3); 190 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName()); 191 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); 192 193 interfaze = constructorDeclaration.getInterfaces().get(4); 194 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName()); 195 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); 196 197 interfaze = constructorDeclaration.getInterfaces().get(5); 198 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName()); 199 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); 200 201 interfaze = constructorDeclaration.getInterfaces().get(6); 202 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName()); 203 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); 204 } 205 206 @Test 207 public void testGetAllInterfacesWithoutParameters() { 208 JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); 209 assertEquals(ImmutableSet.of("java.lang.Cloneable"), compilationUnit.getAllInterfaces().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); 210 211 JavaParserClassDeclaration coid = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.body.ClassOrInterfaceDeclaration"); 212 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())); 213 } 214 215 @Test 216 public void testGetAllInterfacesWithParameters() { 217 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 218 assertEquals(9, constructorDeclaration.getAllInterfaces().size()); 219 220 ReferenceType interfaze = null; 221 222 interfaze = constructorDeclaration.getAllInterfaces().get(0); 223 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", interfaze.getQualifiedName()); 224 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); 225 226 interfaze = constructorDeclaration.getAllInterfaces().get(1); 227 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", interfaze.getQualifiedName()); 228 229 interfaze = constructorDeclaration.getAllInterfaces().get(2); 230 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", interfaze.getQualifiedName()); 231 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); 232 233 interfaze = constructorDeclaration.getAllInterfaces().get(3); 234 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", interfaze.getQualifiedName()); 235 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); 236 237 interfaze = constructorDeclaration.getAllInterfaces().get(4); 238 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", interfaze.getQualifiedName()); 239 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); 240 241 interfaze = constructorDeclaration.getAllInterfaces().get(5); 242 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", interfaze.getQualifiedName()); 243 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); 244 245 interfaze = constructorDeclaration.getAllInterfaces().get(6); 246 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", interfaze.getQualifiedName()); 247 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); 248 249 interfaze = constructorDeclaration.getAllInterfaces().get(7); 250 assertEquals("java.lang.Cloneable", interfaze.getQualifiedName()); 251 252 interfaze = constructorDeclaration.getAllInterfaces().get(8); 253 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", interfaze.getQualifiedName()); 254 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", interfaze.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName()); 255 } 256 257 @Test 258 public void testGetAncestorsWithTypeParameters() { 259 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 260 assertEquals(8, constructorDeclaration.getAncestors().size()); 261 262 ReferenceType ancestor = null; 263 264 ancestor = constructorDeclaration.getAncestors().get(0); 265 assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName()); 266 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); 267 268 ancestor = constructorDeclaration.getAncestors().get(1); 269 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName()); 270 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); 271 272 ancestor = constructorDeclaration.getAncestors().get(2); 273 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName()); 274 275 ancestor = constructorDeclaration.getAncestors().get(3); 276 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName()); 277 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); 278 279 ancestor = constructorDeclaration.getAncestors().get(4); 280 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName()); 281 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); 282 283 ancestor = constructorDeclaration.getAncestors().get(5); 284 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName()); 285 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); 286 287 ancestor = constructorDeclaration.getAncestors().get(6); 288 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName()); 289 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); 290 291 ancestor = constructorDeclaration.getAncestors().get(7); 292 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName()); 293 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); 294 } 295 296 @Test 297 public void testGetAllAncestorsWithoutTypeParameters() { 298 JavaParserClassDeclaration cu = (JavaParserClassDeclaration) typeSolver.solveType("com.github.javaparser.ast.CompilationUnit"); 299 assertEquals(ImmutableSet.of("java.lang.Cloneable", "com.github.javaparser.ast.Node", "java.lang.Object"), cu.getAllAncestors().stream().map(i -> i.getQualifiedName()).collect(Collectors.toSet())); 300 } 301 302 @Test 303 public void testGetAllAncestorsWithTypeParameters() { 304 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 305 assertEquals(12, constructorDeclaration.getAllAncestors().size()); 306 307 ReferenceType ancestor = null; 308 309 ancestor = constructorDeclaration.getAllAncestors().get(0); 310 assertEquals("com.github.javaparser.ast.body.BodyDeclaration", ancestor.getQualifiedName()); 311 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.body.BodyDeclaration.T").get().asReferenceType().getQualifiedName()); 312 313 ancestor = constructorDeclaration.getAllAncestors().get(1); 314 assertEquals("com.github.javaparser.ast.Node", ancestor.getQualifiedName()); 315 316 ancestor = constructorDeclaration.getAllAncestors().get(2); 317 assertEquals("java.lang.Cloneable", ancestor.getQualifiedName()); 318 319 ancestor = constructorDeclaration.getAllAncestors().get(3); 320 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations", ancestor.getQualifiedName()); 321 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.T").get().asReferenceType().getQualifiedName()); 322 323 ancestor = constructorDeclaration.getAllAncestors().get(4); 324 assertEquals("java.lang.Object", ancestor.getQualifiedName()); 325 326 ancestor = constructorDeclaration.getAllAncestors().get(5); 327 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc", ancestor.getQualifiedName()); 328 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.T").get().asReferenceType().getQualifiedName()); 329 330 ancestor = constructorDeclaration.getAllAncestors().get(6); 331 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithDeclaration", ancestor.getQualifiedName()); 332 333 ancestor = constructorDeclaration.getAllAncestors().get(7); 334 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithName", ancestor.getQualifiedName()); 335 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithName.T").get().asReferenceType().getQualifiedName()); 336 337 ancestor = constructorDeclaration.getAllAncestors().get(8); 338 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers", ancestor.getQualifiedName()); 339 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.T").get().asReferenceType().getQualifiedName()); 340 341 ancestor = constructorDeclaration.getAllAncestors().get(9); 342 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithParameters", ancestor.getQualifiedName()); 343 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithParameters.T").get().asReferenceType().getQualifiedName()); 344 345 ancestor = constructorDeclaration.getAllAncestors().get(10); 346 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable", ancestor.getQualifiedName()); 347 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.T").get().asReferenceType().getQualifiedName()); 348 349 ancestor = constructorDeclaration.getAllAncestors().get(11); 350 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt", ancestor.getQualifiedName()); 351 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration", ancestor.typeParametersMap().getValueBySignature("com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.T").get().asReferenceType().getQualifiedName()); 352 } 353 354 /// 355 /// Test fields 356 /// 357 358 @Test 359 public void testGetFieldForExistingField() { 360 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 361 362 FieldDeclaration fieldDeclaration = null; 363 364 // declared field 365 fieldDeclaration = constructorDeclaration.getField("modifiers"); 366 assertEquals("modifiers", fieldDeclaration.getName()); 367 assertEquals("java.util.EnumSet", fieldDeclaration.getType().asReferenceType().getQualifiedName()); 368 assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel()); 369 assertEquals(false, fieldDeclaration.isStatic()); 370 371 // inherited field 372 fieldDeclaration = constructorDeclaration.getField("annotations"); 373 assertEquals("annotations", fieldDeclaration.getName()); 374 assertEquals("java.util.List", fieldDeclaration.getType().asReferenceType().getQualifiedName()); 375 assertEquals(AccessLevel.PRIVATE, fieldDeclaration.accessLevel()); 376 } 377 378 @Test(expected = UnsolvedSymbolException.class) 379 public void testGetFieldForUnexistingField() { 380 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 381 382 constructorDeclaration.getField("unexisting"); 383 } 384 385 @Test 386 public void testGetAllFields() { 387 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 388 389 List<FieldDeclaration> allFields = constructorDeclaration.getAllFields(); 390 assertEquals(16, allFields.size()); 391 392 FieldDeclaration fieldDeclaration = null; 393 394 fieldDeclaration = allFields.get(0); 395 assertEquals("modifiers", fieldDeclaration.getName()); 396 397 fieldDeclaration = allFields.get(1); 398 assertEquals("typeParameters", fieldDeclaration.getName()); 399 400 fieldDeclaration = allFields.get(2); 401 assertEquals("name", fieldDeclaration.getName()); 402 403 fieldDeclaration = allFields.get(3); 404 assertEquals("parameters", fieldDeclaration.getName()); 405 406 fieldDeclaration = allFields.get(4); 407 assertEquals("throws_", fieldDeclaration.getName()); 408 409 fieldDeclaration = allFields.get(5); 410 assertEquals("body", fieldDeclaration.getName()); 411 412 fieldDeclaration = allFields.get(6); 413 assertEquals("annotations", fieldDeclaration.getName()); 414 415 fieldDeclaration = allFields.get(7); 416 assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName()); 417 418 fieldDeclaration = allFields.get(8); 419 assertEquals("range", fieldDeclaration.getName()); 420 421 fieldDeclaration = allFields.get(9); 422 assertEquals("parentNode", fieldDeclaration.getName()); 423 424 fieldDeclaration = allFields.get(10); 425 assertEquals("childrenNodes", fieldDeclaration.getName()); 426 427 fieldDeclaration = allFields.get(11); 428 assertEquals("orphanComments", fieldDeclaration.getName()); 429 430 fieldDeclaration = allFields.get(12); 431 assertEquals("userData", fieldDeclaration.getName()); 432 433 fieldDeclaration = allFields.get(13); 434 assertEquals("comment", fieldDeclaration.getName()); 435 436 fieldDeclaration = allFields.get(14); 437 assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName()); 438 439 fieldDeclaration = allFields.get(15); 440 assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName()); 441 } 442 443 @Test 444 public void testGetAllStaticFields() { 445 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 446 447 List<FieldDeclaration> allFields = constructorDeclaration.getAllStaticFields(); 448 assertEquals(3, allFields.size()); 449 450 FieldDeclaration fieldDeclaration = null; 451 452 fieldDeclaration = allFields.get(0); 453 assertEquals("NODE_BY_BEGIN_POSITION", fieldDeclaration.getName()); 454 455 fieldDeclaration = allFields.get(1); 456 assertEquals("ABSOLUTE_BEGIN_LINE", fieldDeclaration.getName()); 457 458 fieldDeclaration = allFields.get(2); 459 assertEquals("ABSOLUTE_END_LINE", fieldDeclaration.getName()); 460 } 461 462 @Test 463 public void testGetAllNonStaticFields() { 464 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 465 466 List<FieldDeclaration> allFields = constructorDeclaration.getAllNonStaticFields(); 467 assertEquals(13, allFields.size()); 468 469 FieldDeclaration fieldDeclaration = null; 470 471 fieldDeclaration = allFields.get(0); 472 assertEquals("modifiers", fieldDeclaration.getName()); 473 474 fieldDeclaration = allFields.get(1); 475 assertEquals("typeParameters", fieldDeclaration.getName()); 476 477 fieldDeclaration = allFields.get(2); 478 assertEquals("name", fieldDeclaration.getName()); 479 480 fieldDeclaration = allFields.get(3); 481 assertEquals("parameters", fieldDeclaration.getName()); 482 483 fieldDeclaration = allFields.get(4); 484 assertEquals("throws_", fieldDeclaration.getName()); 485 486 fieldDeclaration = allFields.get(5); 487 assertEquals("body", fieldDeclaration.getName()); 488 489 fieldDeclaration = allFields.get(6); 490 assertEquals("annotations", fieldDeclaration.getName()); 491 492 fieldDeclaration = allFields.get(7); 493 assertEquals("range", fieldDeclaration.getName()); 494 495 fieldDeclaration = allFields.get(8); 496 assertEquals("parentNode", fieldDeclaration.getName()); 497 498 fieldDeclaration = allFields.get(9); 499 assertEquals("childrenNodes", fieldDeclaration.getName()); 500 501 fieldDeclaration = allFields.get(10); 502 assertEquals("orphanComments", fieldDeclaration.getName()); 503 504 fieldDeclaration = allFields.get(11); 505 assertEquals("userData", fieldDeclaration.getName()); 506 507 fieldDeclaration = allFields.get(12); 508 assertEquals("comment", fieldDeclaration.getName()); 509 } 510 511 @Test 512 public void testGetDeclaredFields() { 513 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 514 515 List<FieldDeclaration> allFields = constructorDeclaration.getDeclaredFields(); 516 assertEquals(6, allFields.size()); 517 518 FieldDeclaration fieldDeclaration = null; 519 520 fieldDeclaration = allFields.get(0); 521 assertEquals("modifiers", fieldDeclaration.getName()); 522 523 fieldDeclaration = allFields.get(1); 524 assertEquals("typeParameters", fieldDeclaration.getName()); 525 526 fieldDeclaration = allFields.get(2); 527 assertEquals("name", fieldDeclaration.getName()); 528 529 fieldDeclaration = allFields.get(3); 530 assertEquals("parameters", fieldDeclaration.getName()); 531 532 fieldDeclaration = allFields.get(4); 533 assertEquals("throws_", fieldDeclaration.getName()); 534 535 fieldDeclaration = allFields.get(5); 536 assertEquals("body", fieldDeclaration.getName()); 537 } 538 539 /// 540 /// Test methods 541 /// 542 543 @Test 544 public void testGetDeclaredMethods() { 545 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 546 547 Set<MethodDeclaration> allMethods = constructorDeclaration.getDeclaredMethods(); 548 assertEquals(20, allMethods.size()); 549 550 List<MethodDeclaration> sortedMethods = allMethods.stream() 551 .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature())) 552 .collect(Collectors.toList()); 553 554 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)", sortedMethods.get(0).getQualifiedSignature()); 555 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)", sortedMethods.get(1).getQualifiedSignature()); 556 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", sortedMethods.get(2).getQualifiedSignature()); 557 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", sortedMethods.get(3).getQualifiedSignature()); 558 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", sortedMethods.get(4).getQualifiedSignature()); 559 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", sortedMethods.get(5).getQualifiedSignature()); 560 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", sortedMethods.get(6).getQualifiedSignature()); 561 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", sortedMethods.get(7).getQualifiedSignature()); 562 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getName()", sortedMethods.get(8).getQualifiedSignature()); 563 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", sortedMethods.get(9).getQualifiedSignature()); 564 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", sortedMethods.get(10).getQualifiedSignature()); 565 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", sortedMethods.get(11).getQualifiedSignature()); 566 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", sortedMethods.get(12).getQualifiedSignature()); 567 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", sortedMethods.get(13).getQualifiedSignature()); 568 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)", sortedMethods.get(14).getQualifiedSignature()); 569 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", sortedMethods.get(15).getQualifiedSignature()); 570 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", sortedMethods.get(16).getQualifiedSignature()); 571 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)", sortedMethods.get(17).getQualifiedSignature()); 572 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)", sortedMethods.get(18).getQualifiedSignature()); 573 assertEquals("com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)", sortedMethods.get(19).getQualifiedSignature()); 574 } 575 576 @Test 577 public void testGetAllMethods() { 578 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 579 580 Set<MethodUsage> allMethods = constructorDeclaration.getAllMethods(); 581 582 List<MethodUsage> sortedMethods = allMethods.stream() 583 .sorted((o1, o2) -> o1.getQualifiedSignature().compareTo(o2.getQualifiedSignature())) 584 .collect(Collectors.toList()); 585 586 List<String> signatures = sortedMethods.stream().map(m -> m.getQualifiedSignature()).collect(Collectors.toList()); 587 588 assertEquals(ImmutableList.of("com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)", 589 "com.github.javaparser.ast.Node.clone()", 590 "com.github.javaparser.ast.Node.contains(com.github.javaparser.ast.Node)", 591 "com.github.javaparser.ast.Node.equals(java.lang.Object)", 592 "com.github.javaparser.ast.Node.getAllContainedComments()", 593 "com.github.javaparser.ast.Node.getBegin()", 594 "com.github.javaparser.ast.Node.getChildrenNodes()", 595 "com.github.javaparser.ast.Node.getComment()", 596 "com.github.javaparser.ast.Node.getEnd()", 597 "com.github.javaparser.ast.Node.getNodesByType(java.lang.Class<N>)", 598 "com.github.javaparser.ast.Node.getOrphanComments()", 599 "com.github.javaparser.ast.Node.getParentNode()", 600 "com.github.javaparser.ast.Node.getParentNodeOfType(java.lang.Class<T>)", 601 "com.github.javaparser.ast.Node.getRange()", 602 "com.github.javaparser.ast.Node.getUserData(com.github.javaparser.ast.UserDataKey<M>)", 603 "com.github.javaparser.ast.Node.hasComment()", 604 "com.github.javaparser.ast.Node.hashCode()", 605 "com.github.javaparser.ast.Node.isPositionedAfter(com.github.javaparser.Position)", 606 "com.github.javaparser.ast.Node.isPositionedBefore(com.github.javaparser.Position)", 607 "com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)", 608 "com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)", 609 "com.github.javaparser.ast.Node.setBegin(com.github.javaparser.Position)", 610 "com.github.javaparser.ast.Node.setBlockComment(java.lang.String)", 611 "com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)", 612 "com.github.javaparser.ast.Node.setEnd(com.github.javaparser.Position)", 613 "com.github.javaparser.ast.Node.setLineComment(java.lang.String)", 614 "com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)", 615 "com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)", 616 "com.github.javaparser.ast.Node.setUserData(com.github.javaparser.ast.UserDataKey<M>, M)", 617 "com.github.javaparser.ast.Node.toString()", 618 "com.github.javaparser.ast.Node.toStringWithoutComments()", 619 "com.github.javaparser.ast.Node.tryAddImportToParentCompilationUnit(java.lang.Class<?>)", 620 "com.github.javaparser.ast.body.BodyDeclaration.getAnnotations()", 621 "com.github.javaparser.ast.body.BodyDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)", 622 "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.GenericVisitor<R, A>, A)", 623 "com.github.javaparser.ast.body.ConstructorDeclaration.accept(com.github.javaparser.ast.visitor.VoidVisitor<A>, A)", 624 "com.github.javaparser.ast.body.ConstructorDeclaration.getBody()", 625 "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString()", 626 "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean)", 627 "com.github.javaparser.ast.body.ConstructorDeclaration.getDeclarationAsString(boolean, boolean, boolean)", 628 "com.github.javaparser.ast.body.ConstructorDeclaration.getJavaDoc()", 629 "com.github.javaparser.ast.body.ConstructorDeclaration.getModifiers()", 630 "com.github.javaparser.ast.body.ConstructorDeclaration.getName()", 631 "com.github.javaparser.ast.body.ConstructorDeclaration.getNameExpr()", 632 "com.github.javaparser.ast.body.ConstructorDeclaration.getParameters()", 633 "com.github.javaparser.ast.body.ConstructorDeclaration.getThrows()", 634 "com.github.javaparser.ast.body.ConstructorDeclaration.getTypeParameters()", 635 "com.github.javaparser.ast.body.ConstructorDeclaration.setBody(com.github.javaparser.ast.stmt.BlockStmt)", 636 "com.github.javaparser.ast.body.ConstructorDeclaration.setModifiers(java.util.EnumSet<com.github.javaparser.ast.Modifier>)", 637 "com.github.javaparser.ast.body.ConstructorDeclaration.setName(java.lang.String)", 638 "com.github.javaparser.ast.body.ConstructorDeclaration.setNameExpr(com.github.javaparser.ast.expr.NameExpr)", 639 "com.github.javaparser.ast.body.ConstructorDeclaration.setParameters(java.util.List<com.github.javaparser.ast.body.Parameter>)", 640 "com.github.javaparser.ast.body.ConstructorDeclaration.setThrows(java.util.List<com.github.javaparser.ast.type.ReferenceType>)", 641 "com.github.javaparser.ast.body.ConstructorDeclaration.setTypeParameters(java.util.List<com.github.javaparser.ast.type.TypeParameter>)", 642 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)", 643 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addAnnotation(java.lang.String)", 644 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)", 645 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addMarkerAnnotation(java.lang.String)", 646 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.String)", 647 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.addSingleMemberAnnotation(java.lang.String, java.lang.String)", 648 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByClass(java.lang.Class<? extends java.lang.annotation.Annotation>)", 649 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.getAnnotationByName(java.lang.String)", 650 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>)", 651 "com.github.javaparser.ast.nodeTypes.NodeWithAnnotations.isAnnotationPresent(java.lang.String)", 652 "com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt.createBody()", 653 "com.github.javaparser.ast.nodeTypes.NodeWithJavaDoc.setJavaDocComment(java.lang.String)", 654 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.addModifier(com.github.javaparser.ast.Modifier...)", 655 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isAbstract()", 656 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isFinal()", 657 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isNative()", 658 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPrivate()", 659 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isProtected()", 660 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isPublic()", 661 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", 662 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStrictfp()", 663 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isSynchronized()", 664 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isTransient()", 665 "com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isVolatile()", 666 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.body.Parameter)", 667 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(com.github.javaparser.ast.type.Type, java.lang.String)", 668 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.Class<?>, java.lang.String)", 669 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addAndGetParameter(java.lang.String, java.lang.String)", 670 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.body.Parameter)", 671 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(com.github.javaparser.ast.type.Type, java.lang.String)", 672 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.Class<?>, java.lang.String)", 673 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.addParameter(java.lang.String, java.lang.String)", 674 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByName(java.lang.String)", 675 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.Class<?>)", 676 "com.github.javaparser.ast.nodeTypes.NodeWithParameters.getParamByType(java.lang.String)", 677 "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(com.github.javaparser.ast.type.ReferenceType)", 678 "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.addThrows(java.lang.Class<? extends java.lang.Throwable>)", 679 "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", 680 "com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", 681 "java.lang.Object.finalize()", 682 "java.lang.Object.getClass()", 683 "java.lang.Object.notify()", 684 "java.lang.Object.notifyAll()", 685 "java.lang.Object.registerNatives()", 686 "java.lang.Object.wait()", 687 "java.lang.Object.wait(long)", 688 "java.lang.Object.wait(long, int)"), signatures); 689 } 690 691 /// 692 /// Test constructors 693 /// 694 695 @Test 696 public void testGetConstructors() { 697 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 698 699 List<ConstructorDeclaration> constructors = constructorDeclaration.getConstructors(); 700 assertEquals(4, constructors.size()); 701 702 assertEquals("ConstructorDeclaration()", constructors.get(0).getSignature()); 703 assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.lang.String)", constructors.get(1).getSignature()); 704 assertEquals("ConstructorDeclaration(java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(2).getSignature()); 705 assertEquals("ConstructorDeclaration(com.github.javaparser.Range, java.util.EnumSet<com.github.javaparser.ast.Modifier>, java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>, java.util.List<com.github.javaparser.ast.type.TypeParameter>, java.lang.String, java.util.List<com.github.javaparser.ast.body.Parameter>, java.util.List<com.github.javaparser.ast.type.ReferenceType>, com.github.javaparser.ast.stmt.BlockStmt)", constructors.get(3).getSignature()); 706 } 707 708 /// 709 /// Resolution 710 /// 711 712 //SymbolReference<MethodDeclaration> solveMethod(String name, List<Type> parameterTypes); 713 @Test 714 public void testSolveMethodExisting() { 715 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 716 717 SymbolReference<MethodDeclaration> res = null; 718 719 res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of()); 720 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithModifiers.isStatic()", res.getCorrespondingDeclaration().getQualifiedSignature()); 721 722 res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(RuntimeException.class.getClass(), typeSolverNewCode))); 723 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature()); 724 725 res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode))); 726 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.String)", res.getCorrespondingDeclaration().getQualifiedSignature()); 727 728 // This is solved because it is raw 729 res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode))); 730 assertEquals("com.github.javaparser.ast.nodeTypes.NodeWithThrowable.isThrows(java.lang.Class<? extends java.lang.Throwable>)", res.getCorrespondingDeclaration().getQualifiedSignature()); 731 } 732 733 @Test 734 public void testSolveMethodNotExisting() { 735 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 736 737 SymbolReference<MethodDeclaration> res = null; 738 739 res = constructorDeclaration.solveMethod("unexistingMethod", ImmutableList.of()); 740 assertEquals(false, res.isSolved()); 741 742 res = constructorDeclaration.solveMethod("isStatic", ImmutableList.of(PrimitiveType.BOOLEAN)); 743 assertEquals(false, res.isSolved()); 744 } 745 746 @Test 747 public void testSolveMethodNotExistingBecauseOfTypeParameters() { 748 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 749 750 SymbolReference<MethodDeclaration> res = null; 751 752 ReferenceType stringType = (ReferenceType) ReflectionFactory.typeUsageFor(String.class, typeSolverNewCode); 753 ReferenceType rawClassType = (ReferenceType) ReflectionFactory.typeUsageFor(Class.class, typeSolverNewCode); 754 ReferenceType classOfStringType = (ReferenceType) rawClassType.replaceTypeVariables("T", stringType); 755 res = constructorDeclaration.solveMethod("isThrows", ImmutableList.of(classOfStringType)); 756 assertEquals(false, res.isSolved()); 757 } 758 759 @Test 760 public void testSolveSymbolUnexisting() { 761 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 762 763 SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("unexisting", typeSolver); 764 assertEquals(false, res.isSolved()); 765 } 766 767 @Test 768 public void testSolveSymbolToDeclaredField() { 769 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 770 771 SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("name", typeSolver); 772 assertEquals(true, res.isSolved()); 773 assertEquals(true, res.getCorrespondingDeclaration().isField()); 774 } 775 776 @Test 777 public void testSolveSymbolToInheritedPublicField() { 778 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 779 780 SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("NODE_BY_BEGIN_POSITION", typeSolver); 781 assertEquals(true, res.isSolved()); 782 assertEquals(true, res.getCorrespondingDeclaration().isField()); 783 } 784 785 @Test 786 public void testSolveSymbolToInheritedPrivateField() { 787 JavaParserClassDeclaration constructorDeclaration = (JavaParserClassDeclaration) typeSolverNewCode.solveType("com.github.javaparser.ast.body.ConstructorDeclaration"); 788 789 SymbolReference<? extends ValueDeclaration> res = constructorDeclaration.solveSymbol("parentNode", typeSolver); 790 assertEquals(false, res.isSolved()); 791 } 792 793 /// 794 /// Assignability 795 /// 796 797 // boolean isAssignableBy(Type type); 798 799 // boolean canBeAssignedTo(TypeDeclaration other) 800 801 // boolean isAssignableBy(TypeDeclaration other); 802 803 /// 804 /// Annotations 805 /// 806 807 // hasDirectlyAnnotation 808 809 // hasAnnotation 810 811 /// 812 /// 813 /// 814 815 // List<TypeParameterDeclaration> getTypeParameters(); 816 817 // AccessLevel accessLevel(); 818 819 /// 820 /// Containment 821 /// 822 823 // Set<TypeDeclaration> internalTypes() 824 825 // Optional<TypeDeclaration> containerType()*/ 826 } 827