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