blob: 7377dfb86529b426828260d2d26152a60bd6d6c1 [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.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());
}
}