| package com.github.javaparser.ast.body; |
| |
| import com.github.javaparser.ast.CompilationUnit; |
| import org.junit.jupiter.api.Test; |
| |
| import static com.github.javaparser.StaticJavaParser.parse; |
| import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; |
| import static org.junit.jupiter.api.Assertions.assertFalse; |
| import static org.junit.jupiter.api.Assertions.assertTrue; |
| |
| class ClassOrInterfaceDeclarationTest { |
| @Test |
| void staticNestedClass() { |
| CompilationUnit cu = parse("class X{static class Y{}}"); |
| ClassOrInterfaceDeclaration y = cu.getClassByName("X").get().getMembers().get(0).asClassOrInterfaceDeclaration(); |
| |
| assertFalse(y.isInnerClass()); |
| assertTrue(y.isNestedType()); |
| assertFalse(y.isLocalClassDeclaration()); |
| } |
| |
| @Test |
| void nestedInterface() { |
| CompilationUnit cu = parse("class X{interface Y{}}"); |
| ClassOrInterfaceDeclaration y = cu.getClassByName("X").get().getMembers().get(0).asClassOrInterfaceDeclaration(); |
| |
| assertFalse(y.isInnerClass()); |
| assertTrue(y.isNestedType()); |
| assertFalse(y.isLocalClassDeclaration()); |
| } |
| |
| @Test |
| void nonStaticNestedClass() { |
| CompilationUnit cu = parse("class X{class Y{}}"); |
| ClassOrInterfaceDeclaration y = cu.getClassByName("X").get().getMembers().get(0).asClassOrInterfaceDeclaration(); |
| |
| assertTrue(y.isInnerClass()); |
| assertTrue(y.isNestedType()); |
| assertFalse(y.isLocalClassDeclaration()); |
| } |
| |
| @Test |
| void topClass() { |
| CompilationUnit cu = parse("class X{}"); |
| ClassOrInterfaceDeclaration y = cu.getClassByName("X").get(); |
| |
| assertFalse(y.isInnerClass()); |
| assertFalse(y.isNestedType()); |
| assertFalse(y.isLocalClassDeclaration()); |
| } |
| |
| @Test |
| void localClass() { |
| MethodDeclaration method = parseBodyDeclaration("void x(){class X{};}").asMethodDeclaration(); |
| ClassOrInterfaceDeclaration x = method.findFirst(ClassOrInterfaceDeclaration.class).get(); |
| |
| assertFalse(x.isInnerClass()); |
| assertFalse(x.isNestedType()); |
| assertTrue(x.isLocalClassDeclaration()); |
| } |
| } |