blob: c44a63f502006de04911663dd0a46b0786b83206 [file] [log] [blame]
/*
* 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());
}
}