1 package org.incava.javadoc; 2 3 import java.io.*; 4 import java.util.*; 5 import junit.framework.TestCase; 6 import org.incava.text.Location; 7 8 9 public class TestJavadocNode extends TestCase 10 { 11 public TestJavadocNode(String name) 12 { 13 super(name); 14 } 15 16 public void testNone() 17 { 18 String text = ""; 19 JavadocNode jd = JavadocNode.parse(text, 1, 1); 20 21 assertNull("no javadoc node for empty string", jd); 22 } 23 24 public void testEmpty() 25 { 26 JavadocNode jd; 27 28 jd = JavadocNode.parse("/**/", 1, 1); 29 assertNotNull("javadoc node for empty javadoc comment", jd); 30 assertNull("javadoc description", jd.getDescription()); 31 assertEquals("javadoc tagged comments", 0, jd.getTaggedComments().length); 32 33 jd = JavadocNode.parse("/** */", 1, 1); 34 assertNotNull("javadoc node for javadoc comment with one space", jd); 35 assertNull("javadoc description", jd.getDescription()); 36 assertEquals("javadoc tagged comments", 0, jd.getTaggedComments().length); 37 38 jd = JavadocNode.parse("/** */", 1, 1); 39 assertNotNull("javadoc node for javadoc comment with multiple spaces", jd); 40 assertNull("javadoc description", jd.getDescription()); 41 assertEquals("javadoc tagged comments", 0, jd.getTaggedComments().length); 42 } 43 44 public void testDescribedSingleLine() 45 { 46 String text = "/** This is a test. */"; 47 48 JavadocNode jd = JavadocNode.parse(text, 5, 1); 50 51 assertNotNull("javadoc node", jd); 52 53 JavadocDescriptionNode desc = jd.getDescription(); 54 assertNotNull("javadoc description", desc); 55 assertEquals("javadoc description text", "This is a test.", desc.description); 56 assertEquals("javadoc start location", new Location(5, 5), desc.start); 57 assertEquals("javadoc end location", new Location(5, 20), desc.end); 58 59 assertEquals("javadoc tagged comments", 0, jd.getTaggedComments().length); 60 } 61 62 public void testDescribedSeparateLine() 63 { 64 String text = ("/** \n" + 65 " * This is a test. \n" + 66 " */"); 67 68 JavadocNode jd = JavadocNode.parse(text, 5, 1); 70 71 assertNotNull("javadoc node", jd); 72 73 JavadocDescriptionNode desc = jd.getDescription(); 74 assertNotNull("javadoc description", desc); 75 assertEquals("javadoc description text", "This is a test.", desc.description); 76 assertEquals("javadoc start location", new Location(6, 4), desc.start); 77 assertEquals("javadoc end location", new Location(6, 19), desc.end); 78 79 assertEquals("javadoc tagged comments", 0, jd.getTaggedComments().length); 80 } 81 82 public void testDescribedOneTagLine() 83 { 84 String text = ("/** \n" + 85 " * This is a test. \n" + 86 " * @tag And that's a tag.\n" + 87 " */"); 88 89 JavadocNode jd = JavadocNode.parse(text, 5, 1); 91 92 assertNotNull("javadoc node", jd); 93 94 JavadocDescriptionNode desc = jd.getDescription(); 95 assertNotNull("javadoc description", desc); 96 assertEquals("javadoc description text", "This is a test. ", desc.description); 97 assertEquals("javadoc start location", new Location(6, 4), desc.start); 98 assertEquals("javadoc end location", new Location(6, 20), desc.end); 99 100 JavadocTaggedNode[] jtcs = jd.getTaggedComments(); 101 assertEquals("javadoc tagged comments", 1, jtcs.length); 102 assertNotNull("javadoc tagged comment #0", jtcs[0]); 103 assertEquals("javadoc tagged comment description text", "@tag And that's a tag.", jtcs[0].text); 104 assertEquals("javadoc tagged comment start location", new Location(7, 4), jtcs[0].start); 105 assertEquals("javadoc tagged comment end location", new Location(7, 26), jtcs[0].end); 106 assertNotNull("javadoc tagged comment #0 tag", jtcs[0].getTag()); 107 assertEquals("javadoc tagged comment #0 tag text", "@tag", jtcs[0].getTag().text); 108 assertEquals("javadoc tagged comment #0 tag start location", new Location(7, 4), jtcs[0].getTag().start); 109 assertEquals("javadoc tagged comment #0 tag end location", new Location(7, 7), jtcs[0].getTag().end); 110 } 111 112 public void testDescribedTwoTagsMultiLines() 113 { 114 String text = ("/** \n" + 115 " * This is a test. \n" + 116 " * @tag0 And that's a tag,\n" + 117 " * which is described on multiple lines.\n" + 118 " * \n" + 119 " * @tag1 And that's another tag,\n" + 120 " * also described on multiple lines.\n" + 121 " */"); 122 123 JavadocNode jd = JavadocNode.parse(text, 5, 1); 125 126 assertNotNull("javadoc node", jd); 127 128 JavadocDescriptionNode desc = jd.getDescription(); 129 assertNotNull("javadoc description", desc); 130 assertEquals("javadoc description text", "This is a test. ", desc.description); 131 assertEquals("javadoc start location", new Location(6, 4), desc.start); 132 assertEquals("javadoc end location", new Location(6, 20), desc.end); 133 134 JavadocTaggedNode[] jtcs = jd.getTaggedComments(); 135 assertEquals("javadoc tagged comments", 2, jtcs.length); 136 137 assertNotNull("javadoc tagged comment #0", jtcs[0]); 138 assertEquals("javadoc tagged comment description text", "@tag0 And that's a tag,\n * which is described on multiple lines.", jtcs[0].text); 139 assertEquals("javadoc tagged comment start location", new Location(7, 4), jtcs[0].start); 140 assertEquals("javadoc tagged comment end location", new Location(8, 41), jtcs[0].end); 141 142 assertNotNull("javadoc tagged comment #0 tag", jtcs[0].getTag()); 143 assertEquals("javadoc tagged comment #0 tag text", "@tag0", jtcs[0].getTag().text); 144 assertEquals("javadoc tagged comment #0 tag start location", new Location(7, 4), jtcs[0].getTag().start); 145 assertEquals("javadoc tagged comment #0 tag end location", new Location(7, 8), jtcs[0].getTag().end); 146 147 assertNotNull("javadoc tagged comment #0 target", jtcs[0].getTarget()); 148 assertEquals("javadoc tagged comment #0 target text", "And", jtcs[0].getTarget().text); 149 assertEquals("javadoc tagged comment #0 target start location", new Location(7, 10), jtcs[0].getTarget().start); 150 assertEquals("javadoc tagged comment #0 target end location", new Location(7, 12), jtcs[0].getTarget().end); 151 152 assertNotNull("javadoc tagged comment #1 tag", jtcs[1].getTag()); 153 assertEquals("javadoc tagged comment #1 tag text", "@tag1", jtcs[1].getTag().text); 154 assertEquals("javadoc tagged comment #1 tag start location", new Location(10, 4), jtcs[1].getTag().start); 155 assertEquals("javadoc tagged comment #1 tag end location", new Location(10, 8), jtcs[1].getTag().end); 156 157 assertNotNull("javadoc tagged comment #1 target", jtcs[1].getTarget()); 158 assertEquals("javadoc tagged comment #1 target text", "And", jtcs[1].getTarget().text); 159 assertEquals("javadoc tagged comment #1 target start location", new Location(10, 10), jtcs[1].getTarget().start); 160 assertEquals("javadoc tagged comment #1 target end location", new Location(10, 12), jtcs[1].getTarget().end); 161 } 162 163 } 164
| Popular Tags
|