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.naming;
21
22 import static com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck.MSG_KEY;
23
24 import org.junit.jupiter.api.Test;
25
26 import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport;
27 import com.puppycrawl.tools.checkstyle.utils.CommonUtil;
28
29 public class AbbreviationAsWordInNameCheckTest extends AbstractModuleTestSupport {
30
31 @Override
32 protected String getPackageLocation() {
33 return "com/puppycrawl/tools/checkstyle/checks/naming/abbreviationaswordinname";
34 }
35
36 @Test
37 public void testDefault() throws Exception {
38 final int expectedCapitalCount = 4;
39
40 final String[] expected = {
41 "24:16: " + getWarningMessage("FactoryWithBADNAme", expectedCapitalCount),
42 "27:16: " + getWarningMessage("AbstractCLASSName1", expectedCapitalCount),
43 "47:11: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
44 "52:11: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
45 "53:21: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
46 "54:21: " + getWarningMessage("marazmaticVARIABLEName", expectedCapitalCount),
47 "55:21: " + getWarningMessage("MARAZMATICVariableName", expectedCapitalCount),
48 "73:20: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
49 };
50
51 verifyWithInlineConfigParser(
52 getPath("InputAbbreviationAsWordInNameType.java"), expected);
53 }
54
55 @Test
56 public void testTypeNamesForThreePermittedCapitalLetters() throws Exception {
57 final int expectedCapitalCount = 4;
58
59 final String[] expected = {
60 "22:16: " + getWarningMessage("FactoryWithBADNAme2", expectedCapitalCount),
61 "25:16: " + getWarningMessage("AbstractCLASSName2", expectedCapitalCount),
62 "45:11: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
63 "50:11: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
64 };
65
66 verifyWithInlineConfigParser(
67 getPath("InputAbbreviationAsWordInNameType2.java"), expected);
68 }
69
70 @Test
71 public void testTypeNamesForFourPermittedCapitalLetters() throws Exception {
72 final int expectedCapitalCount = 5;
73
74 final String[] expected = {
75 "45:11: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
76 };
77
78 verifyWithInlineConfigParser(
79 getPath("InputAbbreviationAsWordInNameType3.java"), expected);
80 }
81
82 @Test
83 public void testTypeNamesForFivePermittedCapitalLetters() throws Exception {
84 final int expectedCapitalCount = 6;
85 final String[] expected = {
86 "45:11: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
87 "50:11: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
88 };
89
90 verifyWithInlineConfigParser(
91 getPath("InputAbbreviationAsWordInNameType4.java"), expected);
92 }
93
94 @Test
95 public void testTypeAndVariablesAndMethodNames() throws Exception {
96 final int expectedCapitalCount = 6;
97
98 final String[] expected = {
99 "46:11: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
100 "51:11: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
101 "52:21: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
102 "53:17: " + getWarningMessage("marazmaticVARIABLEName", expectedCapitalCount),
103 "54:17: " + getWarningMessage("MARAZMATICVariableName", expectedCapitalCount),
104 };
105
106 verifyWithInlineConfigParser(
107 getPath("InputAbbreviationAsWordInNameType5.java"), expected);
108 }
109
110 @Test
111 public void testTypeAndVariablesAndMethodNamesWithNoIgnores() throws Exception {
112 final int expectedCapitalCount = 6;
113
114 final String[] expected = {
115 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
116 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
117 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
118 "82:16: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
119 "88:23: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
120 "94:22: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
121 "100:29: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
122 "138:17: " + getWarningMessage("InnerClassOneVIOLATION", expectedCapitalCount),
123 "142:18: " + getWarningMessage("InnerClassTwoVIOLATION", expectedCapitalCount),
124 "146:24: " + getWarningMessage("InnerClassThreeVIOLATION", expectedCapitalCount),
125 };
126
127 verifyWithInlineConfigParser(
128 getPath("InputAbbreviationAsWordInNameNoIgnore.java"), expected);
129 }
130
131 @Test
132 public void testTypeAndVariablesAndMethodNamesWithIgnores() throws Exception {
133 final int expectedCapitalCount = 6;
134
135 final String[] expected = {
136 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
137 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
138 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
139 "138:17: " + getWarningMessage("InnerClassOneVIOLATION", expectedCapitalCount),
140 "142:18: " + getWarningMessage("InnerClassTwoVIOLATION", expectedCapitalCount),
141 "146:24: " + getWarningMessage("InnerClassThreeVIOLATION", expectedCapitalCount),
142 };
143
144 verifyWithInlineConfigParser(
145 getPath("InputAbbreviationAsWordInNameIgnore.java"), expected);
146 }
147
148 @Test
149 public void testTypeAndVariablesAndMethodNamesWithIgnoresFinal() throws Exception {
150 final int expectedCapitalCount = 5;
151
152 final String[] expected = {
153 "28:20: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
154 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
155 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
156 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
157 "74:20: "
158 + getWarningMessage("serialNUMBER", expectedCapitalCount),
159 "76:28: " + getWarningMessage("s2erialNUMBER",
160 expectedCapitalCount),
161 };
162
163 verifyWithInlineConfigParser(
164 getPath(
165 "InputAbbreviationAsWordInNameIgnoreFinal.java"), expected);
166 }
167
168 @Test
169 public void testTypeAndVariablesAndMethodNamesWithIgnoresStatic() throws Exception {
170 final int expectedCapitalCount = 5;
171
172 final String[] expected = {
173 "28:20: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
174 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
175 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
176 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
177 "74:20: "
178 + getWarningMessage("serialNUMBER", expectedCapitalCount),
179 "75:26: "
180 + getWarningMessage("s1erialNUMBER", expectedCapitalCount),
181 };
182
183 verifyWithInlineConfigParser(
184 getPath(
185 "InputAbbreviationAsWordInNameIgnoreStatic.java"), expected);
186 }
187
188 @Test
189 public void testTypeAndVariablesAndMethodNamesWithIgnoresStaticFinal() throws Exception {
190 final int expectedCapitalCount = 5;
191
192 final String[] expected = {
193 "28:20: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
194 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
195 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
196 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
197 "74:20: "
198 + getWarningMessage("serialNUMBER", expectedCapitalCount),
199 "75:26: " + getWarningMessage("s1erialNUMBER",
200 expectedCapitalCount),
201 "76:28: " + getWarningMessage("s2erialNUMBER",
202 expectedCapitalCount),
203 };
204
205 verifyWithInlineConfigParser(
206 getPath(
207 "InputAbbreviationAsWordInNameIgnoreStaticFinal.java"), expected);
208 }
209
210 @Test
211 public void testTypeAndVariablesAndMethodNamesWithIgnoresNonStaticFinal() throws Exception {
212 final int expectedCapitalCount = 5;
213
214 final String[] expected = {
215 "28:20: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
216 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
217 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
218 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
219 "74:20: "
220 + getWarningMessage("serialNUMBER", expectedCapitalCount),
221 "77:34: "
222 + getWarningMessage("s3erialNUMBER", expectedCapitalCount),
223 "82:16: "
224 + getWarningMessage("VALUEEEE", expectedCapitalCount),
225 "88:23: "
226 + getWarningMessage("VALUEEEE", expectedCapitalCount),
227 "94:22: "
228 + getWarningMessage("VALUEEEE", expectedCapitalCount),
229 "100:29: "
230 + getWarningMessage("VALUEEEE", expectedCapitalCount),
231 "123:16: "
232 + getWarningMessage("VALUEEEE", expectedCapitalCount),
233 "127:23: "
234 + getWarningMessage("VALUEEEE", expectedCapitalCount),
235 "131:22: "
236 + getWarningMessage("VALUEEEE", expectedCapitalCount),
237 "135:29: "
238 + getWarningMessage("VALUEEEE", expectedCapitalCount),
239 "138:17: " + getWarningMessage("InnerClassOneVIOLATION", expectedCapitalCount),
240 "142:18: " + getWarningMessage("InnerClassTwoVIOLATION", expectedCapitalCount),
241 "146:24: " + getWarningMessage("InnerClassThreeVIOLATION", expectedCapitalCount),
242 };
243
244 verifyWithInlineConfigParser(
245 getPath(
246 "InputAbbreviationAsWordInNameIgnoreNonStaticFinal.java"), expected);
247 }
248
249 @Test
250 public void testTypeAndVariablesAndMethodNamesWithIgnoresFinalKeepStaticFinal()
251 throws Exception {
252 final int expectedCapitalCount = 5;
253
254 final String[] expected = {
255 "28:20: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
256 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
257 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
258 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
259 "74:20: "
260 + getWarningMessage("serialNUMBER", expectedCapitalCount),
261 "76:28: " + getWarningMessage("s2erialNUMBER",
262 expectedCapitalCount),
263 "77:34: "
264 + getWarningMessage("s3erialNUMBER", expectedCapitalCount),
265 "82:16: "
266 + getWarningMessage("VALUEEEE", expectedCapitalCount),
267 "88:23: "
268 + getWarningMessage("VALUEEEE", expectedCapitalCount),
269 "94:22: "
270 + getWarningMessage("VALUEEEE", expectedCapitalCount),
271 "100:29: "
272 + getWarningMessage("VALUEEEE", expectedCapitalCount),
273 };
274
275 verifyWithInlineConfigParser(
276 getPath("InputAbbreviationAsWordInNameIgnoreFinalKeepStaticFinal.java"),
277 expected);
278 }
279
280 @Test
281 public void testTypeAndVariablesAndMethodNamesWithIgnoresStaticKeepStaticFinal()
282 throws Exception {
283 final int expectedCapitalCount = 5;
284
285 final String[] expected = {
286 "28:20: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
287 "48:15: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
288 "53:15: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
289 "54:25: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
290 "74:20: "
291 + getWarningMessage("serialNUMBER", expectedCapitalCount),
292 "75:26: " + getWarningMessage("s1erialNUMBER",
293 expectedCapitalCount),
294 "77:34: "
295 + getWarningMessage("s3erialNUMBER", expectedCapitalCount),
296 "82:16: "
297 + getWarningMessage("VALUEEEE", expectedCapitalCount),
298 "88:23: "
299 + getWarningMessage("VALUEEEE", expectedCapitalCount),
300 "94:22: "
301 + getWarningMessage("VALUEEEE", expectedCapitalCount),
302 "100:29: "
303 + getWarningMessage("VALUEEEE", expectedCapitalCount),
304 };
305
306 verifyWithInlineConfigParser(
307 getPath("InputAbbreviationAsWordInNameIgnoreStaticKeepStaticFinal.java"),
308 expected);
309 }
310
311 @Test
312 public void testTypeNamesForThreePermittedCapitalLettersWithOverriddenMethod()
313 throws Exception {
314 final int expectedCapitalCount = 4;
315
316 final String[] expected = {
317 "35:20: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
318 };
319
320 verifyWithInlineConfigParser(
321 getPath("InputAbbreviationAsWordInNameOverridableMethod.java"), expected);
322 }
323
324 @Test
325 public void testOverriddenMethod()
326 throws Exception {
327 final int expectedCapitalCount = 4;
328
329 final String[] expected = {
330 "21:16: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
331 "29:20: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
332 "37:20: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
333 "49:20: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
334 };
335
336 verifyWithInlineConfigParser(
337 getPath("InputAbbreviationAsWordInNameOverridableMethod2.java"), expected);
338 }
339
340 @Test
341 public void testTypeNamesForZeroPermittedCapitalLetter() throws Exception {
342 final int expectedCapitalCount = 1;
343 final String[] expected = {
344 "20:16: " + getWarningMessage("NonAAAAbstractClassName6", expectedCapitalCount),
345 "23:16: " + getWarningMessage("FactoryWithBADNAme66", expectedCapitalCount),
346 "26:16: " + getWarningMessage("AbstractCLASSName6", expectedCapitalCount),
347 "46:11: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
348 "51:11: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
349 "52:21: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
350 "53:17: " + getWarningMessage("marazmaticVARIABLEName", expectedCapitalCount),
351 "54:17: " + getWarningMessage("MARAZMATICVariableName", expectedCapitalCount),
352 "60:7: " + getWarningMessage("RIGHT", expectedCapitalCount),
353 "61:7: " + getWarningMessage("LEFT", expectedCapitalCount),
354 "62:7: " + getWarningMessage("UP", expectedCapitalCount),
355 "63:7: " + getWarningMessage("DOWN", expectedCapitalCount),
356 "71:16: " + getWarningMessage("NonAAAAbstractClassName26", expectedCapitalCount),
357 "72:16: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
358 "73:22: " + getWarningMessage("s1erialNUMBER", expectedCapitalCount),
359 "74:24: " + getWarningMessage("s2erialNUMBER", expectedCapitalCount),
360 "75:30: " + getWarningMessage("s3erialNUMBER", expectedCapitalCount),
361 "80:12: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
362 "86:19: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
363 "92:18: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
364 "98:25: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
365 "102:7: " + getWarningMessage("FIleNameFormatException6", expectedCapitalCount),
366 "104:31: " + getWarningMessage("serialVersionUID", expectedCapitalCount),
367 "112:9: " + getWarningMessage("userID", expectedCapitalCount),
368 "121:12: " + getWarningMessage("VALUE", expectedCapitalCount),
369 "125:19: " + getWarningMessage("VALUE", expectedCapitalCount),
370 "129:18: " + getWarningMessage("VALUE", expectedCapitalCount),
371 "133:25: " + getWarningMessage("VALUE", expectedCapitalCount),
372 };
373 verifyWithInlineConfigParser(
374 getPath("InputAbbreviationAsWordInNameType6.java"), expected);
375 }
376
377 @Test
378 public void testNullPointerException() throws Exception {
379
380 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
381
382 verifyWithInlineConfigParser(
383 getPath("InputAbbreviationAsWordInNameAbstractMultisetSetCount.java"),
384 expected);
385 }
386
387 @Test
388 public void testAbbreviationAsWordInNameCheckEnhancedInstanceof()
389 throws Exception {
390
391 final int expectedCapitalCount = 4;
392
393 final String[] expected = {
394 "25:36: " + getWarningMessage("STRING", expectedCapitalCount),
395 "26:43: " + getWarningMessage("INTEGER", expectedCapitalCount),
396 "35:41: " + getWarningMessage("ssSTRING", expectedCapitalCount),
397 "38:35: " + getWarningMessage("XMLHTTP", expectedCapitalCount),
398 };
399
400 verifyWithInlineConfigParser(
401 getNonCompilablePath(
402 "InputAbbreviationAsWordInNameCheckEnhancedInstanceof.java"),
403 expected);
404 }
405
406 @Test
407 public void testAbbreviationAsWordInNameCheckEnhancedInstanceofAllowXmlLength1()
408 throws Exception {
409
410 final int expectedCapitalCount = 2;
411
412 final String[] expected = {
413 "25:36: " + getWarningMessage("STRING", expectedCapitalCount),
414 "26:43: " + getWarningMessage("INTEGER", expectedCapitalCount),
415 "34:39: " + getWarningMessage("aTXT", expectedCapitalCount),
416 "35:41: " + getWarningMessage("ssSTRING", expectedCapitalCount),
417 "38:35: " + getWarningMessage("XMLHTTP", expectedCapitalCount),
418 };
419
420 verifyWithInlineConfigParser(
421 getNonCompilablePath(
422 "InputAbbreviationAsWordInNameCheckEnhanced"
423 + "InstanceofAllowXmlLength1.java"),
424 expected);
425 }
426
427 @Test
428 public void testAbbreviationAsWordInNameCheckRecords()
429 throws Exception {
430
431 final int expectedCapitalCount = 4;
432
433 final String[] expected = {
434 "22:11: " + getWarningMessage("myCLASS", expectedCapitalCount),
435 "23:13: " + getWarningMessage("INTEGER", expectedCapitalCount),
436 "24:14: " + getWarningMessage("METHOD", expectedCapitalCount),
437 "26:31: " + getWarningMessage("STRING", expectedCapitalCount),
438 "27:17: " + getWarningMessage("INTEGER", expectedCapitalCount),
439 "33:12: " + getWarningMessage("myRECORD1", expectedCapitalCount),
440 "33:29: " + getWarningMessage("STRING", expectedCapitalCount),
441 "35:14: " + getWarningMessage("METHOD", expectedCapitalCount),
442 "40:17: " + getWarningMessage("INTEGER", expectedCapitalCount),
443 "45:12: " + getWarningMessage("myRECORD2", expectedCapitalCount),
444 "50:17: " + getWarningMessage("INTEGER", expectedCapitalCount),
445 "54:12: " + getWarningMessage("myRECORD3", expectedCapitalCount),
446 "54:29: " + getWarningMessage("STRING", expectedCapitalCount),
447 "54:41: " + getWarningMessage("INTEGER", expectedCapitalCount),
448 "54:57: " + getWarningMessage("NODES", expectedCapitalCount),
449 };
450
451 verifyWithInlineConfigParser(
452 getNonCompilablePath(
453 "InputAbbreviationAsWordInNameCheckRecords.java"),
454 expected);
455 }
456
457 @Test
458 public void testAbbreviationAsWordInNameCheckRecordPatterns()
459 throws Exception {
460
461 final int expectedCapitalCount = 4;
462
463 final String[] expected = {
464 "23:39: " + getWarningMessage("POINT", expectedCapitalCount),
465 "27:60: " + getWarningMessage("COLOR", expectedCapitalCount),
466 "31:53: " + getWarningMessage("INTEGER", expectedCapitalCount),
467 "31:71: " + getWarningMessage("STRING", expectedCapitalCount),
468 "39:52: " + getWarningMessage("COLOR", expectedCapitalCount),
469 "40:52: " + getWarningMessage("INTEGER", expectedCapitalCount),
470 "40:68: " + getWarningMessage("COLOR", expectedCapitalCount),
471 };
472
473 verifyWithInlineConfigParser(
474 getNonCompilablePath(
475 "InputAbbreviationAsWordInNameCheckRecordPatterns.java"),
476 expected);
477 }
478
479 private String getWarningMessage(String typeName, int expectedCapitalCount) {
480 return getCheckMessage(MSG_KEY, typeName, expectedCapitalCount);
481 }
482
483 @Test
484 public void testReceiver() throws Exception {
485 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
486
487 verifyWithInlineConfigParser(
488 getPath("InputAbbreviationAsWordInNameReceiver.java"),
489 expected);
490 }
491
492 @Test
493 public void testInputAbbreviationAsWordInNameTypeSnakeStyle() throws Exception {
494 final String[] expected = {
495 "13:20: " + getWarningMessage("FLAG_IS_FIRST_RUN", 4),
496 "16:17: " + getWarningMessage("HYBRID_LOCK_PATH", 4),
497 "21:17: " + getWarningMessage("__DEMOS__TESTS_VAR", 4),
498 "28:16: " + getWarningMessage("TESTING_FAM_23456", 4),
499 "33:16: " + getWarningMessage("TESTING_23456_FAM", 4),
500 "38:16: " + getWarningMessage("_234VIOLATION", 4),
501 "41:16: " + getWarningMessage("VIOLATION23456", 4),
502 "72:21: " + getWarningMessage("getIsFIRST_Run", 4),
503 "77:21: " + getWarningMessage("getBoolean_VALUES", 4),
504 };
505
506 verifyWithInlineConfigParser(
507 getPath("InputAbbreviationAsWordInNameTypeSnakeStyle.java"), expected);
508 }
509
510 @Test
511 public void testAnnotation() throws Exception {
512 final String[] expected = {
513 "16:12: " + getWarningMessage("readMETHOD", 4),
514 };
515
516 verifyWithInlineConfigParser(
517 getPath("InputAbbreviationAsWordInNameAnnotation.java"), expected);
518 }
519
520 }