diff options
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/ast/comments/CommentTest.java')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/ast/comments/CommentTest.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/comments/CommentTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/comments/CommentTest.java new file mode 100644 index 000000000..946b76ac1 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/comments/CommentTest.java @@ -0,0 +1,72 @@ +/* + * 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.comments; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.Modifier; +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.expr.Name; +import org.junit.Test; + +import java.util.EnumSet; + +import static com.github.javaparser.JavaParser.parse; +import static com.github.javaparser.JavaParser.parseName; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class CommentTest { + + @Test + public void removeOrphanComment() { + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(EnumSet.noneOf(Modifier.class), false, "A"); + Comment c = new LineComment("A comment"); + decl.addOrphanComment(c); + assertEquals(1, decl.getOrphanComments().size()); + assertTrue(c.remove()); + assertEquals(0, decl.getOrphanComments().size()); + } + + @Test + public void removeAssociatedComment() { + ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(EnumSet.noneOf(Modifier.class), false, "A"); + Comment c = new LineComment("A comment"); + decl.setComment(c); + assertEquals(true, decl.getComment().isPresent()); + assertTrue(c.remove()); + assertEquals(false, decl.getComment().isPresent()); + } + + @Test + public void cannotRemoveCommentNotUsedAnywhere() { + Comment c = new LineComment("A comment"); + assertFalse(c.remove()); + } + + @Test + public void unicodeEscapesArePreservedInComments() { + CompilationUnit cu = parse("// xxx\\u2122xxx"); + Comment comment = cu.getAllContainedComments().get(0); + assertEquals(" xxx\\u2122xxx", comment.getContent()); + } +} |