diff options
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/CloneVisitorTest.java')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/CloneVisitorTest.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/CloneVisitorTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/CloneVisitorTest.java new file mode 100644 index 000000000..e59661170 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/CloneVisitorTest.java @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser. + * Copyright (C) 2011, 2013-2016 The JavaParser Team. + * + * This file is part of JavaParser. + * + * JavaParser can be used either under the terms of + * a) the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * b) the terms of the Apache License + * + * You should have received a copy of both licenses in LICENCE.LGPL and + * LICENCE.APACHE. Please refer to those files for details. + * + * JavaParser is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + */ + +package com.github.javaparser.ast.visitor; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.NodeList; +import com.github.javaparser.ast.body.*; +import com.github.javaparser.ast.type.Type; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.util.Iterator; + +import static com.github.javaparser.JavaParser.*; +import static org.junit.Assert.assertEquals; + +public class CloneVisitorTest { + CompilationUnit cu; + + @Before + public void setUp() { + cu = new CompilationUnit(); + } + + @After + public void teardown() { + cu = null; + } + + @Test + public void cloneJavaDocTest() { + NodeList<BodyDeclaration<?>> bodyDeclarationList = new NodeList<>(); + bodyDeclarationList.add(new AnnotationMemberDeclaration().setJavadocComment("javadoc")); + bodyDeclarationList.add(new ConstructorDeclaration().setJavadocComment("javadoc")); + bodyDeclarationList.add(new EnumConstantDeclaration().setJavadocComment("javadoc")); + bodyDeclarationList.add(new FieldDeclaration().setJavadocComment("javadoc")); + bodyDeclarationList.add(new InitializerDeclaration().setJavadocComment("javadoc")); + bodyDeclarationList.add(new MethodDeclaration().setJavadocComment("javadoc")); + + NodeList<TypeDeclaration<?>> typeDeclarationList = new NodeList<>(); + AnnotationDeclaration annotationDeclaration = new AnnotationDeclaration(); + annotationDeclaration.setName("nnotationDeclarationTest"); + typeDeclarationList.add(annotationDeclaration.setJavadocComment("javadoc")); + + ClassOrInterfaceDeclaration classOrInterfaceDeclaration2 = new ClassOrInterfaceDeclaration(); + classOrInterfaceDeclaration2.setName("emptyTypeDeclarationTest"); + typeDeclarationList.add(classOrInterfaceDeclaration2.setJavadocComment("javadoc")); + + EnumDeclaration enumDeclaration = new EnumDeclaration(); + enumDeclaration.setName("enumDeclarationTest"); + typeDeclarationList.add(enumDeclaration.setJavadocComment("javadoc")); + + ClassOrInterfaceDeclaration classOrInterfaceDeclaration = new ClassOrInterfaceDeclaration(); + classOrInterfaceDeclaration.setName("classOrInterfaceDeclarationTest"); + typeDeclarationList.add(classOrInterfaceDeclaration.setJavadocComment("javadoc")); + + ClassOrInterfaceDeclaration classOrInterfaceDeclaration1 = new ClassOrInterfaceDeclaration(); + classOrInterfaceDeclaration1.setName("emptyTypeDeclarationTest1"); + typeDeclarationList.add(classOrInterfaceDeclaration2.setMembers(bodyDeclarationList)); + + cu.setTypes(typeDeclarationList); + CompilationUnit cuClone = (CompilationUnit) new CloneVisitor().visit(cu, null); + + NodeList<TypeDeclaration<?>> typeDeclarationListClone = cuClone.getTypes(); + Iterator<TypeDeclaration<?>> typeItr = typeDeclarationListClone.iterator(); + TypeDeclaration<?> typeDeclaration; + while (typeItr.hasNext()) { + typeDeclaration = typeItr.next(); + if (typeDeclaration.getMembers() == null) { + assertEquals(typeDeclaration.getComment().get().getContent(), " javadoc"); + } else { + Iterator<BodyDeclaration<?>> bodyItr = typeDeclaration.getMembers().iterator(); + while (bodyItr.hasNext()) { + BodyDeclaration<?> bodyDeclaration = bodyItr.next(); + assertEquals(bodyDeclaration.getComment().get().getContent(), " javadoc"); + } + } + } + } + + @Test + public void cloneAnnotationOnWildcardTypeArgument() { + Type type = parseType("List<@C ? extends Object>").clone(); + assertEquals("List<@C ? extends Object>", type.toString()); + } + +} |