KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > incava > javadoc > TestJavadocNode


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 JavaDoc name)
12     {
13         super(name);
14     }
15
16     public void testNone()
17     {
18         String JavaDoc 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 JavaDoc text = "/** This is a test. */";
47         
48         // starts at line 5, column 1:
49
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 JavaDoc text = ("/** \n" +
65                         " * This is a test. \n" +
66                         " */");
67
68         // starts at line 5, column 1:
69
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 JavaDoc text = ("/** \n" +
85                         " * This is a test. \n" +
86                         " * @tag And that's a tag.\n" +
87                         " */");
88
89         // starts at line 5, column 1:
90
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 JavaDoc 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         // starts at line 5, column 1:
124
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