diff options
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java b/javaparser-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java new file mode 100644 index 000000000..c44a63f50 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/CommentsInserterTest.java @@ -0,0 +1,103 @@ +/* + * 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; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.comments.CommentsCollection; +import org.junit.Test; + +import java.io.IOException; + +import static com.github.javaparser.JavaParser.*; +import static com.github.javaparser.utils.TestUtils.assertEqualsNoEol; +import static com.github.javaparser.utils.Utils.EOL; +import static org.junit.Assert.assertEquals; + +public class CommentsInserterTest { + private String makeFilename(String sampleName) { + return "com/github/javaparser/issue_samples/" + sampleName + ".java.txt"; + } + + private ParseResult<CompilationUnit> parseSample(String sampleName) throws IOException { + Provider p = Providers.resourceProvider( + makeFilename(sampleName)); + return new JavaParser().parse(ParseStart.COMPILATION_UNIT, p); + } + + /** + * Issue: "When there is a String constant "\\" compilationUnit ignores all further comments" + */ + @Test + public void issue290() throws IOException { + ParseResult result = parseSample("Issue290"); + CommentsCollection cc = (CommentsCollection) result.getCommentsCollection().get(); + assertEquals(1, cc.getLineComments().size()); + assertEquals(1, cc.getJavadocComments().size()); + } + + @Test + public void issue624() throws IOException { + parseResource(makeFilename("Issue624")); + // Should not fail + } + + @Test + public void issue200EnumConstantsWithCommentsForceVerticalAlignment() { + CompilationUnit cu = parse("public enum X {" + EOL + + " /** const1 javadoc */" + EOL + + " BORDER_CONSTANT," + EOL + + " /** const2 javadoc */" + EOL + + " ANOTHER_CONSTANT" + EOL + + "}"); + assertEqualsNoEol("public enum X {\n" + + "\n" + + " /**\n" + + " * const1 javadoc\n" + + " */\n" + + " BORDER_CONSTANT,\n" + + " /**\n" + + " * const2 javadoc\n" + + " */\n" + + " ANOTHER_CONSTANT\n" + + "}\n", cu.toString()); + } + + @Test + public void issue234LosingCommentsInArrayInitializerExpr() { + CompilationUnit cu = parse("@Anno(stuff={" + EOL + + " // Just," + EOL + + " // an," + EOL + + " // example" + EOL + + "})" + EOL + + "class ABC {" + EOL + + "" + EOL + + "}"); + + assertEqualsNoEol("@Anno(stuff = {// Just,\n" + + "// an,\n" + + "// example\n" + + "})\n" + + "class ABC {\n" + + "}\n", cu.toString()); + } + +} |