aboutsummaryrefslogtreecommitdiff
path: root/javaparser-testing/src/test/java/com/github/javaparser/JavadocParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/JavadocParserTest.java')
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/JavadocParserTest.java168
1 files changed, 168 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/JavadocParserTest.java b/javaparser-testing/src/test/java/com/github/javaparser/JavadocParserTest.java
new file mode 100644
index 000000000..99e138e21
--- /dev/null
+++ b/javaparser-testing/src/test/java/com/github/javaparser/JavadocParserTest.java
@@ -0,0 +1,168 @@
+/*
+ * 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.javadoc.Javadoc;
+import com.github.javaparser.javadoc.JavadocBlockTag;
+import com.github.javaparser.javadoc.description.JavadocDescription;
+import org.junit.Assert;
+import org.junit.Test;
+
+import static com.github.javaparser.utils.Utils.EOL;
+import static org.junit.Assert.assertEquals;
+
+public class JavadocParserTest {
+
+ @Test
+ public void parseSimplestContent() {
+ Assert.assertEquals(new Javadoc(JavadocDescription.parseText("A simple line of text")),
+ JavadocParser.parse("A simple line of text"));
+ }
+
+ @Test
+ public void parseSingleLineWithSpacing() {
+ assertEquals(new Javadoc(JavadocDescription.parseText("The line number of the first character of this Token.")),
+ JavadocParser.parse(" The line number of the first character of this Token. "));
+ }
+
+ @Test
+ public void parseSingleLineWithNewLines() {
+ assertEquals(new Javadoc(JavadocDescription.parseText("The string image of the token.")),
+ JavadocParser.parse(EOL +
+ " * The string image of the token." + EOL +
+ " "));
+ }
+
+ @Test
+ public void parseCommentWithNewLines() {
+ String text = EOL +
+ " * The version identifier for this Serializable class." + EOL +
+ " * Increment only if the <i>serialized</i> form of the" + EOL +
+ " * class changes." + EOL +
+ " ";
+ assertEquals(new Javadoc(JavadocDescription.parseText("The version identifier for this Serializable class." + EOL +
+ "Increment only if the <i>serialized</i> form of the" + EOL +
+ "class changes.")),
+ JavadocParser.parse(text));
+ }
+
+ @Test
+ public void parseCommentWithIndentation() {
+ String text = "Returns a new Token object, by default." + EOL +
+ " * However, if you want, you can create and return subclass objects based on the value of ofKind." + EOL +
+ " *" + EOL +
+ " * case MyParserConstants.ID : return new IDToken(ofKind, image);" + EOL +
+ " *" + EOL +
+ " * to the following switch statement. Then you can cast matchedToken";
+ assertEquals(new Javadoc(JavadocDescription.parseText("Returns a new Token object, by default." + EOL +
+ "However, if you want, you can create and return subclass objects based on the value of ofKind." + EOL +
+ EOL +
+ " case MyParserConstants.ID : return new IDToken(ofKind, image);" + EOL +
+ EOL +
+ "to the following switch statement. Then you can cast matchedToken")),
+ JavadocParser.parse(text));
+ }
+
+ @Test
+ public void parseBlockTagsAndEmptyDescription() {
+ String text = EOL +
+ " * @deprecated" + EOL +
+ " * @see #getEndColumn" + EOL +
+ " ";
+ assertEquals(new Javadoc(JavadocDescription.parseText(""))
+ .addBlockTag(new JavadocBlockTag(JavadocBlockTag.Type.DEPRECATED, ""))
+ .addBlockTag(new JavadocBlockTag(JavadocBlockTag.Type.SEE, "#getEndColumn")), JavadocParser.parse(text));
+ }
+
+ @Test
+ public void parseBlockTagsAndProvideTagName() {
+ String expectedText = EOL +
+ " * @unofficial" + EOL + " " +
+ " ";
+
+ Javadoc underTest = new Javadoc(JavadocDescription.parseText(""))
+ .addBlockTag(new JavadocBlockTag("unofficial", ""));
+
+
+ assertEquals(underTest, JavadocParser.parse(expectedText));
+ assertEquals(1, underTest.getBlockTags().size());
+ assertEquals("unofficial", underTest.getBlockTags().get(0).getTagName());
+ }
+
+ @Test
+ public void parseParamBlockTags() {
+ String text = EOL +
+ " * Add a field to this and automatically add the import of the type if needed" + EOL +
+ " *" + EOL +
+ " * @param typeClass the type of the field" + EOL +
+ " * @param name the name of the field" + EOL +
+ " * @param modifiers the modifiers like {@link Modifier#PUBLIC}" + EOL +
+ " * @return the {@link FieldDeclaration} created" + EOL +
+ " ";
+ Javadoc res = JavadocParser.parse(text);
+ assertEquals(new Javadoc(JavadocDescription.parseText("Add a field to this and automatically add the import of the type if needed"))
+ .addBlockTag(JavadocBlockTag.createParamBlockTag("typeClass", "the type of the field"))
+ .addBlockTag(JavadocBlockTag.createParamBlockTag("name", "the name of the field"))
+ .addBlockTag(JavadocBlockTag.createParamBlockTag("modifiers", "the modifiers like {@link Modifier#PUBLIC}"))
+ .addBlockTag(new JavadocBlockTag(JavadocBlockTag.Type.RETURN, "the {@link FieldDeclaration} created")), res);
+ }
+
+ @Test
+ public void parseMultilineParamBlockTags() {
+ String text = EOL +
+ " * Add a field to this and automatically add the import of the type if needed" + EOL +
+ " *" + EOL +
+ " * @param typeClass the type of the field" + EOL +
+ " * continued in a second line" + EOL +
+ " * @param name the name of the field" + EOL +
+ " * @param modifiers the modifiers like {@link Modifier#PUBLIC}" + EOL +
+ " * @return the {@link FieldDeclaration} created" + EOL +
+ " ";
+ Javadoc res = JavadocParser.parse(text);
+ assertEquals(new Javadoc(JavadocDescription.parseText("Add a field to this and automatically add the import of the type if needed"))
+ .addBlockTag(JavadocBlockTag.createParamBlockTag("typeClass", "the type of the field" + EOL + " continued in a second line"))
+ .addBlockTag(JavadocBlockTag.createParamBlockTag("name", "the name of the field"))
+ .addBlockTag(JavadocBlockTag.createParamBlockTag("modifiers", "the modifiers like {@link Modifier#PUBLIC}"))
+ .addBlockTag(new JavadocBlockTag(JavadocBlockTag.Type.RETURN, "the {@link FieldDeclaration} created")), res);
+ }
+
+ @Test
+ public void startsWithAsteriskEmpty() {
+ assertEquals(-1, JavadocParser.startsWithAsterisk(""));
+ }
+
+ @Test
+ public void startsWithAsteriskNoAsterisk() {
+ assertEquals(-1, JavadocParser.startsWithAsterisk(" ciao"));
+ }
+
+ @Test
+ public void startsWithAsteriskAtTheBeginning() {
+ assertEquals(0, JavadocParser.startsWithAsterisk("* ciao"));
+ }
+
+ @Test
+ public void startsWithAsteriskAfterSpaces() {
+ assertEquals(3, JavadocParser.startsWithAsterisk(" * ciao"));
+ }
+
+}