diff options
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java b/javaparser-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java new file mode 100644 index 000000000..7377dfb86 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java @@ -0,0 +1,138 @@ +/* + * 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.javadoc; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.javadoc.description.JavadocDescription; +import com.github.javaparser.javadoc.description.JavadocDescriptionElement; +import com.github.javaparser.javadoc.description.JavadocInlineTag; +import org.junit.Test; + +import static com.github.javaparser.utils.Utils.EOL; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class JavadocTest { + + @Test + public void toTextForEmptyJavadoc() { + Javadoc javadoc = new Javadoc(new JavadocDescription()); + assertEquals("", javadoc.toText()); + } + + @Test + public void toTextForJavadocWithTwoLinesOfJustDescription() { + Javadoc javadoc = new Javadoc(JavadocDescription.parseText("first line" + EOL + "second line")); + assertEquals("first line" + EOL + "second line" + EOL, javadoc.toText()); + } + + @Test + public void toTextForJavadocWithTwoLinesOfJustDescriptionAndOneBlockTag() { + Javadoc javadoc = new Javadoc(JavadocDescription.parseText("first line" + EOL + "second line")); + javadoc.addBlockTag("foo", "something useful"); + assertEquals("first line" + EOL + "second line" + EOL + EOL + "@foo something useful" + EOL, javadoc.toText()); + } + + @Test + public void toCommentForEmptyJavadoc() { + Javadoc javadoc = new Javadoc(new JavadocDescription()); + assertEquals(new JavadocComment("" + EOL + "\t\t "), javadoc.toComment("\t\t")); + } + + @Test + public void toCommentorJavadocWithTwoLinesOfJustDescription() { + Javadoc javadoc = new Javadoc(JavadocDescription.parseText("first line" + EOL + "second line")); + assertEquals(new JavadocComment("" + EOL + "\t\t * first line" + EOL + "\t\t * second line" + EOL + "\t\t "), javadoc.toComment("\t\t")); + } + + @Test + public void toCommentForJavadocWithTwoLinesOfJustDescriptionAndOneBlockTag() { + Javadoc javadoc = new Javadoc(JavadocDescription.parseText("first line" + EOL + "second line")); + javadoc.addBlockTag("foo", "something useful"); + assertEquals(new JavadocComment("" + EOL + "\t\t * first line" + EOL + "\t\t * second line" + EOL + "\t\t * " + EOL + "\t\t * @foo something useful" + EOL + "\t\t "), javadoc.toComment("\t\t")); + } + + @Test + public void descriptionAndBlockTagsAreRetrievable() { + Javadoc javadoc = JavaParser.parseJavadoc("first line" + EOL + "second line" + EOL + EOL + "@param node a node" + EOL + "@return result the result"); + assertEquals("first line" + EOL + "second line", javadoc.getDescription().toText()); + assertEquals(2, javadoc.getBlockTags().size()); + } + + @Test + public void inlineTagsAreParsable() { + String docText = + "Returns the {@link TOFilename}s of all files that existed during the requested" + EOL + + "{@link TOVersion}." + EOL + + "" + EOL + + "@param versionID the id of the {@link TOVersion}." + EOL + + "@return the filenames" + EOL + + "@throws InvalidIDException if the {@link IPersistence} doesn't recognize the given versionID." + EOL; + String javadoc = JavaParser.parseJavadoc(docText).toText(); + assertTrue(javadoc.contains("{@link TOVersion}")); + } + + @Test + public void emptyLinesBetweenBlockTagsGetsFiltered() { + String comment = " * The type of the Object to be mapped." + EOL + + " * This interface maps the given Objects to existing ones in the database and" + EOL + + " * saves them." + EOL + + " * " + EOL + + " * @author censored" + EOL + + " * " + EOL + + " * @param <T>" + EOL; + Javadoc javadoc = JavaParser.parseJavadoc(comment); + assertEquals(2, javadoc.getBlockTags().size()); + } + + @Test + public void blockTagModificationWorks() { + Javadoc javadoc = new Javadoc(new JavadocDescription()); + + assertEquals(0, javadoc.getBlockTags().size()); + JavadocBlockTag blockTag = new JavadocBlockTag(JavadocBlockTag.Type.RETURN, "a value"); + javadoc.addBlockTag(blockTag); + + assertEquals(1, javadoc.getBlockTags().size()); + assertEquals(blockTag, javadoc.getBlockTags().get(0)); + + assertEquals(blockTag, javadoc.getBlockTags().remove(0)); + assertEquals(0, javadoc.getBlockTags().size()); + } + + @Test + public void descriptionModificationWorks() { + JavadocDescription description = new JavadocDescription(); + + assertEquals(0, description.getElements().size()); + + JavadocDescriptionElement inlineTag = new JavadocInlineTag("inheritDoc", JavadocInlineTag.Type.INHERIT_DOC, ""); + assertTrue(description.addElement(inlineTag)); + + assertEquals(1, description.getElements().size()); + assertEquals(inlineTag, description.getElements().get(0)); + + assertEquals(inlineTag, description.getElements().remove(0)); + assertEquals(0, description.getElements().size()); + } +} |