Source code: com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheckTest.java
1 package com.puppycrawl.tools.checkstyle.checks.javadoc;
2
3 import com.puppycrawl.tools.checkstyle.BaseCheckTestCase;
4 import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
5 import com.puppycrawl.tools.checkstyle.api.Scope;
6
7 /**
8 * @author Oliver.Burn
9 *
10 * To change this generated comment edit the template variable "typecomment":
11 * Window>Preferences>Java>Templates.
12 * To enable and disable the creation of type comments go to
13 * Window>Preferences>Java>Code Generation.
14 */
15 public class JavadocTypeCheckTest extends BaseCheckTestCase
16 {
17 public void testTags() throws Exception
18 {
19 final DefaultConfiguration checkConfig =
20 createCheckConfig(JavadocTypeCheck.class);
21 final String[] expected =
22 {
23 "8: Missing a Javadoc comment.",
24 };
25 verify(checkConfig, getPath("InputTags.java"), expected);
26 }
27
28 public void testInner() throws Exception
29 {
30 final DefaultConfiguration checkConfig =
31 createCheckConfig(JavadocTypeCheck.class);
32 final String[] expected =
33 {
34 "14: Missing a Javadoc comment.",
35 "21: Missing a Javadoc comment.",
36 "27: Missing a Javadoc comment.",
37 };
38 verify(checkConfig, getPath("InputInner.java"), expected);
39 }
40
41 public void testStrict() throws Exception
42 {
43 final DefaultConfiguration checkConfig =
44 createCheckConfig(JavadocTypeCheck.class);
45 final String[] expected =
46 {
47 "7: Missing a Javadoc comment.",
48 "9: Missing a Javadoc comment.",
49 "14: Missing a Javadoc comment.",
50 "34: Missing a Javadoc comment.",
51 };
52 verify(checkConfig, getPath("InputPublicOnly.java"), expected);
53 }
54
55 public void testProtected() throws Exception
56 {
57 final DefaultConfiguration checkConfig =
58 createCheckConfig(JavadocTypeCheck.class);
59 checkConfig.addAttribute("scope", Scope.PROTECTED.getName());
60 final String[] expected =
61 {
62 "7: Missing a Javadoc comment.",
63 };
64 verify(checkConfig, getPath("InputPublicOnly.java"), expected);
65 }
66
67 public void testPublic() throws Exception
68 {
69 final DefaultConfiguration checkConfig =
70 createCheckConfig(JavadocTypeCheck.class);
71 checkConfig.addAttribute("scope", Scope.PUBLIC.getName());
72 final String[] expected =
73 {
74 "7: Missing a Javadoc comment.",
75 "38: Missing a Javadoc comment.",
76 };
77 verify(checkConfig, getPath("InputScopeInnerInterfaces.java"), expected);
78 }
79
80 public void testProtest() throws Exception
81 {
82 final DefaultConfiguration checkConfig =
83 createCheckConfig(JavadocTypeCheck.class);
84 checkConfig.addAttribute("scope", Scope.PROTECTED.getName());
85 final String[] expected =
86 {
87 "7: Missing a Javadoc comment.",
88 "29: Missing a Javadoc comment.",
89 "38: Missing a Javadoc comment.",
90 };
91 verify(checkConfig, getPath("InputScopeInnerInterfaces.java"), expected);
92 }
93
94 public void testPkg() throws Exception
95 {
96 final DefaultConfiguration checkConfig =
97 createCheckConfig(JavadocTypeCheck.class);
98 checkConfig.addAttribute(
99 "scope",
100 Scope.getInstance("package").getName());
101 final String[] expected =
102 {
103 "18: Missing a Javadoc comment.",
104 "20: Missing a Javadoc comment.",
105 "22: Missing a Javadoc comment.",
106 };
107 verify(checkConfig, getPath("InputScopeInnerClasses.java"), expected);
108 }
109
110 public void testEclipse() throws Exception
111 {
112 final DefaultConfiguration checkConfig =
113 createCheckConfig(JavadocTypeCheck.class);
114 checkConfig.addAttribute(
115 "scope",
116 Scope.getInstance("public").getName());
117 final String[] expected =
118 {
119 "18: Missing a Javadoc comment.",
120 };
121 verify(checkConfig, getPath("InputScopeInnerClasses.java"), expected);
122 }
123
124 public void testAuthorRequired() throws Exception
125 {
126 final DefaultConfiguration checkConfig =
127 createCheckConfig(JavadocTypeCheck.class);
128 checkConfig.addAttribute("authorFormat", "\\S");
129 final String[] expected =
130 {
131 "13: Type Javadoc comment is missing an @author tag.",
132 };
133 verify(checkConfig, getPath("InputWhitespace.java"), expected);
134 }
135
136 public void testAuthorRegularEx()
137 throws Exception
138 {
139 final DefaultConfiguration checkConfig =
140 createCheckConfig(JavadocTypeCheck.class);
141 checkConfig.addAttribute("authorFormat", "0*");
142 final String[] expected = {
143 };
144 verify(checkConfig, getPath("InputJavadoc.java"), expected);
145 }
146
147 public void testAuthorRegularExError()
148 throws Exception
149 {
150 final DefaultConfiguration checkConfig =
151 createCheckConfig(JavadocTypeCheck.class);
152 checkConfig.addAttribute("authorFormat", "ABC");
153 final String[] expected = {
154 "13: Type Javadoc tag @author must match pattern 'ABC'.",
155 };
156 verify(checkConfig, getPath("InputJavadoc.java"), expected);
157 }
158
159 public void testVersionRequired()
160 throws Exception
161 {
162 final DefaultConfiguration checkConfig =
163 createCheckConfig(JavadocTypeCheck.class);
164 checkConfig.addAttribute("versionFormat", "\\S");
165 final String[] expected = {
166 "13: Type Javadoc comment is missing an @version tag."
167 };
168 verify(checkConfig, getPath("InputWhitespace.java"), expected);
169 }
170
171 public void testVersionRegularEx()
172 throws Exception
173 {
174 final DefaultConfiguration checkConfig =
175 createCheckConfig(JavadocTypeCheck.class);
176 checkConfig.addAttribute("versionFormat", "[:digit:].*");
177 final String[] expected = {
178 };
179 verify(checkConfig, getPath("InputJavadoc.java"), expected);
180 }
181
182 public void testVersionRegularExError()
183 throws Exception
184 {
185 final DefaultConfiguration checkConfig =
186 createCheckConfig(JavadocTypeCheck.class);
187 checkConfig.addAttribute("versionFormat", "\\$Revision.*\\$");
188 final String[] expected = {
189 "13: Type Javadoc tag @version must match pattern '\\$Revision.*\\$'."
190 };
191 verify(checkConfig, getPath("InputJavadoc.java"), expected);
192 }
193 }