1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.puppycrawl.tools.checkstyle.checks.javadoc;
21
22 import static com.google.common.truth.Truth.assertWithMessage;
23 import static com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck.MSG_JAVADOC_MISSING;
24
25 import org.junit.jupiter.api.Test;
26
27 import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport;
28 import com.puppycrawl.tools.checkstyle.api.TokenTypes;
29
30 public class JavadocVariableCheckTest
31 extends AbstractModuleTestSupport {
32
33 @Override
34 protected String getPackageLocation() {
35 return "com/puppycrawl/tools/checkstyle/checks/javadoc/javadocvariable";
36 }
37
38 @Test
39 public void testGetRequiredTokens() {
40 final JavadocVariableCheck javadocVariableCheck = new JavadocVariableCheck();
41 final int[] actual = javadocVariableCheck.getRequiredTokens();
42 final int[] expected = {
43 TokenTypes.VARIABLE_DEF,
44 };
45 assertWithMessage("Default required tokens are invalid")
46 .that(actual)
47 .isEqualTo(expected);
48 }
49
50 @Test
51 public void testGetAcceptableTokens() {
52 final JavadocVariableCheck javadocVariableCheck = new JavadocVariableCheck();
53
54 final int[] actual = javadocVariableCheck.getAcceptableTokens();
55 final int[] expected = {
56 TokenTypes.VARIABLE_DEF,
57 TokenTypes.ENUM_CONSTANT_DEF,
58 };
59
60 assertWithMessage("Default acceptable tokens are invalid")
61 .that(actual)
62 .isEqualTo(expected);
63 }
64
65 @Test
66 public void testDefault()
67 throws Exception {
68 final String[] expected = {
69 "16:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
70 "309:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
71 "316:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
72 "335:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
73
74 };
75 verifyWithInlineConfigParser(
76 getPath("InputJavadocVariableTags.java"), expected);
77 }
78
79 @Test
80 public void testAnother()
81 throws Exception {
82 final String[] expected = {
83 "21:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
84 "28:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
85 "34:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
86 };
87 verifyWithInlineConfigParser(
88 getPath("InputJavadocVariableInner.java"), expected);
89 }
90
91 @Test
92 public void testAnother2()
93 throws Exception {
94 final String[] expected = {
95 "26:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
96 };
97 verifyWithInlineConfigParser(
98 getPath("InputJavadocVariableInner2.java"), expected);
99 }
100
101 @Test
102 public void testAnother3()
103 throws Exception {
104 final String[] expected = {
105 "15:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
106 "20:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
107 "40:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
108 "47:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
109 "48:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
110 "49:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
111 "50:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
112 };
113 verifyWithInlineConfigParser(
114 getPath("InputJavadocVariablePublicOnly.java"), expected);
115 }
116
117 @Test
118 public void testAnother4()
119 throws Exception {
120 final String[] expected = {
121 "15:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
122 "50:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
123 };
124 verifyWithInlineConfigParser(
125 getPath("InputJavadocVariablePublicOnly2.java"), expected);
126 }
127
128 @Test
129 public void testJavadocVariableOnInnerClassFields() throws Exception {
130 final String[] expected = {
131 "13:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
132 "14:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
133 "15:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
134 "16:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
135 "24:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
136 "25:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
137 "26:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
138 "27:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
139 "36:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
140 "37:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
141 "38:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
142 "39:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
143 "48:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
144 "49:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
145 "50:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
146 "51:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
147 };
148 verifyWithInlineConfigParser(
149 getPath("InputJavadocVariableOnInnerClassFields.java"),
150 expected);
151 }
152
153 @Test
154 public void testJavadocVariableOnPublicInnerClassFields() throws Exception {
155 final String[] expected = {
156 "12:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
157 "13:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
158 "14:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
159 "15:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
160 "23:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
161 "24:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
162 "25:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
163 "26:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
164 "35:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
165 "36:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
166 "37:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
167 "38:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
168 "47:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
169 "48:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
170 "49:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
171 "50:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
172 "59:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
173 "60:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
174 "61:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
175 "62:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
176 "72:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
177 };
178 verifyWithInlineConfigParser(
179 getPath("InputJavadocVariableOnPublicInnerClassFields.java"),
180 expected);
181 }
182
183 @Test
184 public void testAccessModifiersPublicProtected() throws Exception {
185 final String[] expected = {
186 "13:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
187 "14:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
188 "24:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
189 "25:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
190 "36:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
191 "37:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
192 "48:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
193 "49:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
194 "61:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
195 "62:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
196 "72:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
197 "73:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
198 "84:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
199 "85:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
200 "96:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
201 "97:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
202 "108:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
203 "109:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
204 "130:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
205 };
206 verifyWithInlineConfigParser(
207 getPath("InputJavadocVariableNoJavadoc2.java"),
208 expected);
209 }
210
211 @Test
212 public void testAccessModifiersPackagePrivate() throws Exception {
213 final String[] expected = {
214 "15:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
215 "16:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
216 "26:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
217 "27:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
218 "38:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
219 "39:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
220 "50:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
221 "51:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
222 "63:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
223 "64:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
224 "74:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
225 "75:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
226 "86:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
227 "87:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
228 "98:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
229 "99:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
230 "110:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
231 "111:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
232 "121:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
233 };
234 verifyWithInlineConfigParser(
235 getPath("InputJavadocVariableNoJavadoc3.java"),
236 expected);
237 }
238
239 @Test
240 public void testIgnoredVariableNames()
241 throws Exception {
242 final String[] expected = {
243 "13:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
244 "14:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
245 "15:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
246 "16:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
247 "24:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
248 "25:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
249 "26:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
250 "27:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
251 "36:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
252 "37:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
253 "38:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
254 "39:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
255 "48:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
256 "49:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
257 "50:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
258 "51:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
259 };
260 verifyWithInlineConfigParser(
261 getPath("InputJavadocVariableOnIgnoredVariableNames.java"),
262 expected);
263 }
264
265 @Test
266 public void testIgnoredVariableNames2()
267 throws Exception {
268 final String[] expected = {
269 "14:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
270 "15:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
271 "16:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
272 "17:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
273 "25:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
274 "26:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
275 "27:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
276 "28:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
277 "37:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
278 "38:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
279 "39:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
280 "40:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
281 "49:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
282 "50:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
283 "51:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
284 "52:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
285 "61:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
286 "62:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
287 "63:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
288 "64:13: " + getCheckMessage(MSG_JAVADOC_MISSING),
289 };
290 verifyWithInlineConfigParser(
291 getPath("InputJavadocVariableOnIgnoredVariableNames2.java"),
292 expected);
293 }
294
295 @Test
296 public void testDoNotIgnoreAnythingWhenIgnoreNamePatternIsEmpty()
297 throws Exception {
298 final String[] expected = {
299 "13:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
300 "14:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
301 "15:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
302 "16:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
303 "24:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
304 "25:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
305 "26:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
306 "27:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
307 "36:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
308 "37:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
309 "38:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
310 "39:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
311 "48:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
312 "49:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
313 "50:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
314 "51:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
315 "61:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
316 "62:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
317 "63:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
318 "64:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
319 "72:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
320 "73:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
321 "74:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
322 "75:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
323 "84:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
324 "85:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
325 "86:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
326 "87:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
327 "96:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
328 "97:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
329 "98:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
330 "99:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
331 "108:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
332 "109:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
333 "110:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
334 "111:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
335 "121:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
336 };
337 verifyWithInlineConfigParser(
338 getPath("InputJavadocVariableNoJavadoc5.java"),
339 expected);
340 }
341
342 @Test
343 public void testLambdaLocalVariablesDoNotNeedJavadoc() throws Exception {
344 final String[] expected = {
345 "15:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
346 };
347 verifyWithInlineConfigParser(
348 getPath("InputJavadocVariableNoJavadocNeededInLambda.java"),
349 expected);
350 }
351
352 @Test
353 public void testInterfaceMemberScopeIsPublic() throws Exception {
354 final String[] expected = {
355 "16:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
356 "18:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
357 "25:9: " + getCheckMessage(MSG_JAVADOC_MISSING),
358 };
359 verifyWithInlineConfigParser(
360 getPath("InputJavadocVariableInterfaceMemberScopeIsPublic.java"),
361 expected);
362 }
363
364 @Test
365 public void testMethodInnerClass() throws Exception {
366 final String[] expected = {
367 "9:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
368 "10:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
369 "11:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
370 "12:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
371 };
372 verifyWithInlineConfigParser(
373 getPath("InputJavadocVariableMethodInnerClass.java"),
374 expected);
375 }
376
377 @Test
378 public void testJavadocVariableAboveComment() throws Exception {
379 final String[] expected = {
380 "23:5: " + getCheckMessage(MSG_JAVADOC_MISSING),
381 };
382 verifyWithInlineConfigParser(
383 getPath("InputJavadocVariableAboveComment.java"),
384 expected);
385 }
386 }