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.coding;
21
22 import static com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.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 MagicNumberCheckTest
30 extends AbstractModuleTestSupport {
31
32 @Override
33 protected String getPackageLocation() {
34 return "com/puppycrawl/tools/checkstyle/checks/coding/magicnumber";
35 }
36
37 @Test
38 public void testLocalVariables()
39 throws Exception {
40 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
41 verifyWithInlineConfigParser(
42 getPath("InputMagicNumberLocalVariables.java"), expected);
43 }
44
45 @Test
46 public void testLocalVariables2()
47 throws Exception {
48 final String[] expected = {
49 "27:17: " + getCheckMessage(MSG_KEY, "8"),
50 };
51 verifyWithInlineConfigParser(
52 getPath("InputMagicNumberLocalVariables2.java"), expected);
53 }
54
55 @Test
56 public void testDefault1()
57 throws Exception {
58 final String[] expected = {
59 "56:26: " + getCheckMessage(MSG_KEY, "3_000"),
60 "57:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
61 "58:27: " + getCheckMessage(MSG_KEY, "3"),
62 "58:31: " + getCheckMessage(MSG_KEY, "4"),
63 "60:29: " + getCheckMessage(MSG_KEY, "3"),
64 "62:23: " + getCheckMessage(MSG_KEY, "3"),
65 "63:26: " + getCheckMessage(MSG_KEY, "1.5"),
66 "65:22: " + getCheckMessage(MSG_KEY, "3"),
67 "65:29: " + getCheckMessage(MSG_KEY, "5"),
68 "65:37: " + getCheckMessage(MSG_KEY, "3"),
69 "69:26: " + getCheckMessage(MSG_KEY, "3"),
70 "70:39: " + getCheckMessage(MSG_KEY, "3"),
71 "74:25: " + getCheckMessage(MSG_KEY, "010"),
72 "75:25: " + getCheckMessage(MSG_KEY, "011"),
73 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
74 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
75 "81:24: " + getCheckMessage(MSG_KEY, "0x10"),
76 "82:24: " + getCheckMessage(MSG_KEY, "0X011"),
77 "84:29: " + getCheckMessage(MSG_KEY, "0x10L"),
78 "85:29: " + getCheckMessage(MSG_KEY, "0X11l"),
79 "98:28: " + getCheckMessage(MSG_KEY, "3"),
80 };
81 verifyWithInlineConfigParser(
82 getPath("InputMagicNumberDefault1.java"), expected);
83 }
84
85 @Test
86 public void testDefault2()
87 throws Exception {
88 final String[] expected = {
89 "23:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
90 "30:30: " + getCheckMessage(MSG_KEY, "+3"),
91 "31:29: " + getCheckMessage(MSG_KEY, "-2"),
92 "32:35: " + getCheckMessage(MSG_KEY, "+3.5"),
93 "33:36: " + getCheckMessage(MSG_KEY, "-2.5"),
94 "40:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
95 "41:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
96 "44:37: " + getCheckMessage(MSG_KEY, "020000000000"),
97 "45:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
98 "52:20: " + getCheckMessage(MSG_KEY, "378"),
99 };
100 verifyWithInlineConfigParser(
101 getPath("InputMagicNumberDefault2.java"), expected);
102 }
103
104 @Test
105 public void testDefault3()
106 throws Exception {
107 final String[] expected = {
108 "22:16: " + getCheckMessage(MSG_KEY, "31"),
109 "27:16: " + getCheckMessage(MSG_KEY, "42"),
110 "32:16: " + getCheckMessage(MSG_KEY, "13"),
111 "36:15: " + getCheckMessage(MSG_KEY, "21"),
112 "40:15: " + getCheckMessage(MSG_KEY, "37"),
113 "44:15: " + getCheckMessage(MSG_KEY, "101"),
114 "47:42: " + getCheckMessage(MSG_KEY, "42"),
115 "51:48: " + getCheckMessage(MSG_KEY, "43"),
116 "55:42: " + getCheckMessage(MSG_KEY, "-44"),
117 "59:48: " + getCheckMessage(MSG_KEY, "-45"),
118 "76:20: " + getCheckMessage(MSG_KEY, "0b101"),
119 "77:14: " + getCheckMessage(MSG_KEY,
120 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
121 "87:21: " + getCheckMessage(MSG_KEY, "122"),
122
123 };
124 verifyWithInlineConfigParser(
125 getPath("InputMagicNumberDefault3.java"), expected);
126 }
127
128 @Test
129 public void testIgnoreSome1()
130 throws Exception {
131 final String[] expected = {
132 "38:25: " + getCheckMessage(MSG_KEY, "2"),
133 "44:35: " + getCheckMessage(MSG_KEY, "2"),
134 "46:24: " + getCheckMessage(MSG_KEY, "2"),
135 "48:29: " + getCheckMessage(MSG_KEY, "2.0"),
136 "50:29: " + getCheckMessage(MSG_KEY, "2"),
137 "52:17: " + getCheckMessage(MSG_KEY, "2"),
138 "54:19: " + getCheckMessage(MSG_KEY, "2.0"),
139 "58:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
140 "59:31: " + getCheckMessage(MSG_KEY, "4"),
141 "64:26: " + getCheckMessage(MSG_KEY, "1.5"),
142 "66:29: " + getCheckMessage(MSG_KEY, "5"),
143 "77:25: " + getCheckMessage(MSG_KEY, "011"),
144 "80:30: " + getCheckMessage(MSG_KEY, "011l"),
145 "85:24: " + getCheckMessage(MSG_KEY, "0X011"),
146 "88:29: " + getCheckMessage(MSG_KEY, "0X11l"),
147 };
148 verifyWithInlineConfigParser(
149 getPath("InputMagicNumberIgnoreSome1.java"), expected);
150 }
151
152 @Test
153 public void testIgnoreSome2()
154 throws Exception {
155 final String[] expected = {
156 "23:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
157 "32:29: " + getCheckMessage(MSG_KEY, "-2"),
158 "33:35: " + getCheckMessage(MSG_KEY, "+3.5"),
159 "34:36: " + getCheckMessage(MSG_KEY, "-2.5"),
160 "39:34: " + getCheckMessage(MSG_KEY, "0xffffffff"),
161 "40:36: " + getCheckMessage(MSG_KEY, "0xffffffffffffffffL"),
162 "41:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
163 "42:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
164 "43:36: " + getCheckMessage(MSG_KEY, "037777777777"),
165 "44:38: " + getCheckMessage(MSG_KEY, "01777777777777777777777L"),
166 "45:37: " + getCheckMessage(MSG_KEY, "020000000000"),
167 "46:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
168 "51:20: " + getCheckMessage(MSG_KEY, "378"),
169 };
170 verifyWithInlineConfigParser(
171 getPath("InputMagicNumberIgnoreSome2.java"), expected);
172 }
173
174 @Test
175 public void testIgnoreSome3()
176 throws Exception {
177 final String[] expected = {
178 "23:16: " + getCheckMessage(MSG_KEY, "31"),
179 "28:16: " + getCheckMessage(MSG_KEY, "42"),
180 "33:16: " + getCheckMessage(MSG_KEY, "13"),
181 "37:15: " + getCheckMessage(MSG_KEY, "21"),
182 "41:15: " + getCheckMessage(MSG_KEY, "37"),
183 "45:15: " + getCheckMessage(MSG_KEY, "101"),
184 "77:20: " + getCheckMessage(MSG_KEY, "0b101"),
185 "78:14: " + getCheckMessage(MSG_KEY,
186 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
187 "88:21: " + getCheckMessage(MSG_KEY, "122"),
188 };
189 verifyWithInlineConfigParser(
190 getPath("InputMagicNumberIgnoreSome3.java"), expected);
191 }
192
193 @Test
194 public void testIgnoreNone1()
195 throws Exception {
196 final String[] expected = {
197 "43:24: " + getCheckMessage(MSG_KEY, "1"),
198 "44:25: " + getCheckMessage(MSG_KEY, "2"),
199 "45:26: " + getCheckMessage(MSG_KEY, "0L"),
200 "46:26: " + getCheckMessage(MSG_KEY, "0l"),
201 "47:30: " + getCheckMessage(MSG_KEY, "0D"),
202 "48:30: " + getCheckMessage(MSG_KEY, "0d"),
203 "50:35: " + getCheckMessage(MSG_KEY, "2"),
204 "52:20: " + getCheckMessage(MSG_KEY, "1"),
205 "52:24: " + getCheckMessage(MSG_KEY, "2"),
206 "53:21: " + getCheckMessage(MSG_KEY, "1"),
207 "54:23: " + getCheckMessage(MSG_KEY, "1.0"),
208 "54:29: " + getCheckMessage(MSG_KEY, "2.0"),
209 "56:22: " + getCheckMessage(MSG_KEY, "0"),
210 "56:29: " + getCheckMessage(MSG_KEY, "2"),
211 "58:13: " + getCheckMessage(MSG_KEY, "1"),
212 "58:17: " + getCheckMessage(MSG_KEY, "2"),
213 "60:13: " + getCheckMessage(MSG_KEY, "1.0"),
214 "60:19: " + getCheckMessage(MSG_KEY, "2.0"),
215 "63:26: " + getCheckMessage(MSG_KEY, "3_000"),
216 "64:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
217 "65:27: " + getCheckMessage(MSG_KEY, "3"),
218 "65:31: " + getCheckMessage(MSG_KEY, "4"),
219 "67:29: " + getCheckMessage(MSG_KEY, "3"),
220 "69:23: " + getCheckMessage(MSG_KEY, "3"),
221 "70:26: " + getCheckMessage(MSG_KEY, "1.5"),
222 "72:22: " + getCheckMessage(MSG_KEY, "3"),
223 "72:29: " + getCheckMessage(MSG_KEY, "5"),
224 "72:37: " + getCheckMessage(MSG_KEY, "3"),
225 "76:26: " + getCheckMessage(MSG_KEY, "3"),
226 "77:39: " + getCheckMessage(MSG_KEY, "3"),
227 "81:25: " + getCheckMessage(MSG_KEY, "00"),
228 "82:25: " + getCheckMessage(MSG_KEY, "010"),
229 "83:25: " + getCheckMessage(MSG_KEY, "011"),
230 "85:30: " + getCheckMessage(MSG_KEY, "0_10L"),
231 "86:30: " + getCheckMessage(MSG_KEY, "011l"),
232 "89:23: " + getCheckMessage(MSG_KEY, "0x0"),
233 "90:24: " + getCheckMessage(MSG_KEY, "0x10"),
234 "91:24: " + getCheckMessage(MSG_KEY, "0X011"),
235 "92:28: " + getCheckMessage(MSG_KEY, "0x0L"),
236 "93:29: " + getCheckMessage(MSG_KEY, "0x10L"),
237 "94:29: " + getCheckMessage(MSG_KEY, "0X11l"),
238 "107:28: " + getCheckMessage(MSG_KEY, "3"),
239 };
240 verifyWithInlineConfigParser(
241 getPath("InputMagicNumberIgnoreNone1.java"), expected);
242 }
243
244 @Test
245 public void testIgnoreNone2()
246 throws Exception {
247 final String[] expected = {
248 "21:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
249 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
250 "29:29: " + getCheckMessage(MSG_KEY, "-2"),
251 "30:35: " + getCheckMessage(MSG_KEY, "+3.5"),
252 "31:36: " + getCheckMessage(MSG_KEY, "-2.5"),
253 "36:34: " + getCheckMessage(MSG_KEY, "0xffffffff"),
254 "37:36: " + getCheckMessage(MSG_KEY, "0xffffffffffffffffL"),
255 "38:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
256 "39:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
257 "40:36: " + getCheckMessage(MSG_KEY, "037777777777"),
258 "41:38: " + getCheckMessage(MSG_KEY, "01777777777777777777777L"),
259 "42:37: " + getCheckMessage(MSG_KEY, "020000000000"),
260 "43:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
261 "49:20: " + getCheckMessage(MSG_KEY, "378"),
262 };
263 verifyWithInlineConfigParser(
264 getPath("InputMagicNumberIgnoreNone2.java"), expected);
265 }
266
267 @Test
268 public void testIgnoreNone3()
269 throws Exception {
270 final String[] expected = {
271 "22:16: " + getCheckMessage(MSG_KEY, "31"),
272 "27:16: " + getCheckMessage(MSG_KEY, "42"),
273 "32:16: " + getCheckMessage(MSG_KEY, "13"),
274 "36:15: " + getCheckMessage(MSG_KEY, "21"),
275 "40:15: " + getCheckMessage(MSG_KEY, "37"),
276 "44:15: " + getCheckMessage(MSG_KEY, "101"),
277 "76:20: " + getCheckMessage(MSG_KEY, "0b101"),
278 "77:14: " + getCheckMessage(MSG_KEY,
279 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
280 "87:21: " + getCheckMessage(MSG_KEY, "122"),
281 };
282 verifyWithInlineConfigParser(
283 getPath("InputMagicNumberIgnoreNone3.java"), expected);
284 }
285
286 @Test
287 public void testIntegersOnly1()
288 throws Exception {
289 final String[] expected = {
290 "57:26: " + getCheckMessage(MSG_KEY, "3_000"),
291 "59:27: " + getCheckMessage(MSG_KEY, "3"),
292 "59:31: " + getCheckMessage(MSG_KEY, "4"),
293 "61:29: " + getCheckMessage(MSG_KEY, "3"),
294 "63:23: " + getCheckMessage(MSG_KEY, "3"),
295 "66:22: " + getCheckMessage(MSG_KEY, "3"),
296 "66:29: " + getCheckMessage(MSG_KEY, "5"),
297 "66:37: " + getCheckMessage(MSG_KEY, "3"),
298 "70:26: " + getCheckMessage(MSG_KEY, "3"),
299 "71:39: " + getCheckMessage(MSG_KEY, "3"),
300 "76:25: " + getCheckMessage(MSG_KEY, "010"),
301 "77:25: " + getCheckMessage(MSG_KEY, "011"),
302 "79:30: " + getCheckMessage(MSG_KEY, "0_10L"),
303 "80:30: " + getCheckMessage(MSG_KEY, "011l"),
304 "84:24: " + getCheckMessage(MSG_KEY, "0x10"),
305 "85:24: " + getCheckMessage(MSG_KEY, "0X011"),
306 "87:29: " + getCheckMessage(MSG_KEY, "0x10L"),
307 "88:29: " + getCheckMessage(MSG_KEY, "0X11l"),
308 "101:28: " + getCheckMessage(MSG_KEY, "3"),
309 };
310 verifyWithInlineConfigParser(
311 getPath("InputMagicNumberIntegersOnly1.java"), expected);
312 }
313
314 @Test
315 public void testIntegersOnly2()
316 throws Exception {
317 final String[] expected = {
318 "22:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
319 "30:30: " + getCheckMessage(MSG_KEY, "+3"),
320 "31:29: " + getCheckMessage(MSG_KEY, "-2"),
321 "40:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
322 "41:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
323 "44:37: " + getCheckMessage(MSG_KEY, "020000000000"),
324 "45:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
325 "51:20: " + getCheckMessage(MSG_KEY, "378"),
326 };
327 verifyWithInlineConfigParser(
328 getPath("InputMagicNumberIntegersOnly2.java"), expected);
329 }
330
331 @Test
332 public void testIntegersOnly3()
333 throws Exception {
334 final String[] expected = {
335 "22:16: " + getCheckMessage(MSG_KEY, "31"),
336 "27:16: " + getCheckMessage(MSG_KEY, "42"),
337 "32:16: " + getCheckMessage(MSG_KEY, "13"),
338 "36:15: " + getCheckMessage(MSG_KEY, "21"),
339 "40:15: " + getCheckMessage(MSG_KEY, "37"),
340 "44:15: " + getCheckMessage(MSG_KEY, "101"),
341 "76:20: " + getCheckMessage(MSG_KEY, "0b101"),
342 "77:14: " + getCheckMessage(MSG_KEY,
343 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
344 "87:21: " + getCheckMessage(MSG_KEY, "122"),
345 };
346 verifyWithInlineConfigParser(
347 getPath("InputMagicNumberIntegersOnly3.java"), expected);
348 }
349
350 @Test
351 public void testIgnoreNegativeOctalHex1() throws Exception {
352 final String[] expected = {
353 "57:26: " + getCheckMessage(MSG_KEY, "3_000"),
354 "59:27: " + getCheckMessage(MSG_KEY, "3"),
355 "59:31: " + getCheckMessage(MSG_KEY, "4"),
356 "61:29: " + getCheckMessage(MSG_KEY, "3"),
357 "63:23: " + getCheckMessage(MSG_KEY, "3"),
358 "66:22: " + getCheckMessage(MSG_KEY, "3"),
359 "66:29: " + getCheckMessage(MSG_KEY, "5"),
360 "66:37: " + getCheckMessage(MSG_KEY, "3"),
361 "70:26: " + getCheckMessage(MSG_KEY, "3"),
362 "71:39: " + getCheckMessage(MSG_KEY, "3"),
363 "76:25: " + getCheckMessage(MSG_KEY, "010"),
364 "77:25: " + getCheckMessage(MSG_KEY, "011"),
365 "79:30: " + getCheckMessage(MSG_KEY, "0_10L"),
366 "80:30: " + getCheckMessage(MSG_KEY, "011l"),
367 "84:24: " + getCheckMessage(MSG_KEY, "0x10"),
368 "85:24: " + getCheckMessage(MSG_KEY, "0X011"),
369 "87:29: " + getCheckMessage(MSG_KEY, "0x10L"),
370 "88:29: " + getCheckMessage(MSG_KEY, "0X11l"),
371 "101:28: " + getCheckMessage(MSG_KEY, "3"),
372 };
373 verifyWithInlineConfigParser(
374 getPath("InputMagicNumberIgnoreNegativeOctalHex1.java"), expected);
375 }
376
377 @Test
378 public void testIgnoreNegativeOctalHex2() throws Exception {
379 final String[] expected = {
380 "22:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
381 "30:30: " + getCheckMessage(MSG_KEY, "+3"),
382 "52:20: " + getCheckMessage(MSG_KEY, "378"),
383 };
384 verifyWithInlineConfigParser(
385 getPath("InputMagicNumberIgnoreNegativeOctalHex2.java"), expected);
386 }
387
388 @Test
389 public void testIgnoreNegativeOctalHex3() throws Exception {
390 final String[] expected = {
391 "22:16: " + getCheckMessage(MSG_KEY, "31"),
392 "27:16: " + getCheckMessage(MSG_KEY, "42"),
393 "32:16: " + getCheckMessage(MSG_KEY, "13"),
394 "36:15: " + getCheckMessage(MSG_KEY, "21"),
395 "40:15: " + getCheckMessage(MSG_KEY, "37"),
396 "44:15: " + getCheckMessage(MSG_KEY, "101"),
397 "77:20: " + getCheckMessage(MSG_KEY, "0b101"),
398 "78:14: " + getCheckMessage(MSG_KEY,
399 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
400 "88:21: " + getCheckMessage(MSG_KEY, "122"),
401 };
402 verifyWithInlineConfigParser(
403 getPath("InputMagicNumberIgnoreNegativeOctalHex3.java"), expected);
404 }
405
406 @Test
407 public void testIgnoreHashCodeMethod() throws Exception {
408 final String[] expected = {
409 "57:26: " + getCheckMessage(MSG_KEY, "3_000"),
410 "58:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
411 "59:27: " + getCheckMessage(MSG_KEY, "3"),
412 "59:31: " + getCheckMessage(MSG_KEY, "4"),
413 "61:29: " + getCheckMessage(MSG_KEY, "3"),
414 "63:23: " + getCheckMessage(MSG_KEY, "3"),
415 "64:26: " + getCheckMessage(MSG_KEY, "1.5"),
416 "66:22: " + getCheckMessage(MSG_KEY, "3"),
417 "66:29: " + getCheckMessage(MSG_KEY, "5"),
418 "66:37: " + getCheckMessage(MSG_KEY, "3"),
419 "70:26: " + getCheckMessage(MSG_KEY, "3"),
420 "71:39: " + getCheckMessage(MSG_KEY, "3"),
421 "76:25: " + getCheckMessage(MSG_KEY, "010"),
422 "77:25: " + getCheckMessage(MSG_KEY, "011"),
423 "79:30: " + getCheckMessage(MSG_KEY, "0_10L"),
424 "80:30: " + getCheckMessage(MSG_KEY, "011l"),
425 "84:24: " + getCheckMessage(MSG_KEY, "0x10"),
426 "85:24: " + getCheckMessage(MSG_KEY, "0X011"),
427 "87:29: " + getCheckMessage(MSG_KEY, "0x10L"),
428 "88:29: " + getCheckMessage(MSG_KEY, "0X11l"),
429 "101:28: " + getCheckMessage(MSG_KEY, "3"),
430 };
431 verifyWithInlineConfigParser(
432 getPath("InputMagicNumberIgnoreHashCodeMethod1.java"), expected);
433 }
434
435 @Test
436 public void testIgnoreHashCodeMethod2() throws Exception {
437 final String[] expected = {
438 "22:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
439 "29:30: " + getCheckMessage(MSG_KEY, "+3"),
440 "30:29: " + getCheckMessage(MSG_KEY, "-2"),
441 "31:35: " + getCheckMessage(MSG_KEY, "+3.5"),
442 "32:36: " + getCheckMessage(MSG_KEY, "-2.5"),
443 "39:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
444 "40:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
445 "43:37: " + getCheckMessage(MSG_KEY, "020000000000"),
446 "44:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
447 "51:20: " + getCheckMessage(MSG_KEY, "378"),
448 };
449 verifyWithInlineConfigParser(
450 getPath("InputMagicNumberIgnoreHashCodeMethod2.java"), expected);
451 }
452
453 @Test
454 public void testIgnoreHashCodeMethod3() throws Exception {
455 final String[] expected = {
456 "27:16: " + getCheckMessage(MSG_KEY, "42"),
457 "32:16: " + getCheckMessage(MSG_KEY, "13"),
458 "36:15: " + getCheckMessage(MSG_KEY, "21"),
459 "40:15: " + getCheckMessage(MSG_KEY, "37"),
460 "44:15: " + getCheckMessage(MSG_KEY, "101"),
461 "77:20: " + getCheckMessage(MSG_KEY, "0b101"),
462 "78:14: " + getCheckMessage(MSG_KEY,
463 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
464 "88:21: " + getCheckMessage(MSG_KEY, "122"),
465 };
466 verifyWithInlineConfigParser(
467 getPath("InputMagicNumberIgnoreHashCodeMethod3.java"), expected);
468 }
469
470 @Test
471 public void testIgnoreFieldDeclaration1()
472 throws Exception {
473 final String[] expected = {
474 "57:26: " + getCheckMessage(MSG_KEY, "3_000"),
475 "58:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
476 "59:27: " + getCheckMessage(MSG_KEY, "3"),
477 "59:31: " + getCheckMessage(MSG_KEY, "4"),
478 "61:29: " + getCheckMessage(MSG_KEY, "3"),
479 "63:23: " + getCheckMessage(MSG_KEY, "3"),
480 "64:26: " + getCheckMessage(MSG_KEY, "1.5"),
481 "66:22: " + getCheckMessage(MSG_KEY, "3"),
482 "66:29: " + getCheckMessage(MSG_KEY, "5"),
483 "66:37: " + getCheckMessage(MSG_KEY, "3"),
484 "70:26: " + getCheckMessage(MSG_KEY, "3"),
485 "71:39: " + getCheckMessage(MSG_KEY, "3"),
486 "76:25: " + getCheckMessage(MSG_KEY, "010"),
487 "77:25: " + getCheckMessage(MSG_KEY, "011"),
488 "79:30: " + getCheckMessage(MSG_KEY, "0_10L"),
489 "80:30: " + getCheckMessage(MSG_KEY, "011l"),
490 "84:24: " + getCheckMessage(MSG_KEY, "0x10"),
491 "85:24: " + getCheckMessage(MSG_KEY, "0X011"),
492 "87:29: " + getCheckMessage(MSG_KEY, "0x10L"),
493 "88:29: " + getCheckMessage(MSG_KEY, "0X11l"),
494 };
495 verifyWithInlineConfigParser(
496 getPath("InputMagicNumberIgnoreFieldDeclaration1.java"), expected);
497 }
498
499 @Test
500 public void testIgnoreFieldDeclaration2()
501 throws Exception {
502 final String[] expected = {
503 "51:20: " + getCheckMessage(MSG_KEY, "378"),
504 };
505 verifyWithInlineConfigParser(
506 getPath("InputMagicNumberIgnoreFieldDeclaration2.java"), expected);
507 }
508
509 @Test
510 public void testIgnoreFieldDeclaration3()
511 throws Exception {
512 final String[] expected = {
513 "22:16: " + getCheckMessage(MSG_KEY, "31"),
514 "27:16: " + getCheckMessage(MSG_KEY, "42"),
515 "32:16: " + getCheckMessage(MSG_KEY, "13"),
516 "36:15: " + getCheckMessage(MSG_KEY, "21"),
517 "40:15: " + getCheckMessage(MSG_KEY, "37"),
518 "44:15: " + getCheckMessage(MSG_KEY, "101"),
519 "47:42: " + getCheckMessage(MSG_KEY, "42"),
520 "51:48: " + getCheckMessage(MSG_KEY, "43"),
521 "55:42: " + getCheckMessage(MSG_KEY, "-44"),
522 "59:48: " + getCheckMessage(MSG_KEY, "-45"),
523 "88:21: " + getCheckMessage(MSG_KEY, "122"),
524 };
525 verifyWithInlineConfigParser(
526 getPath("InputMagicNumberIgnoreFieldDeclaration3.java"), expected);
527 }
528
529 @Test
530 public void testIgnoreFieldDeclaration4()
531 throws Exception {
532 final String[] expected = {
533 "29:27: " + getCheckMessage(MSG_KEY, "5"),
534 "36:26: " + getCheckMessage(MSG_KEY, "86400_000"),
535 "45:31: " + getCheckMessage(MSG_KEY, "5"),
536 "46:32: " + getCheckMessage(MSG_KEY, "69"),
537 "55:27: " + getCheckMessage(MSG_KEY, "5"),
538 "62:26: " + getCheckMessage(MSG_KEY, "86400_000"),
539 "71:31: " + getCheckMessage(MSG_KEY, "5"),
540 "72:32: " + getCheckMessage(MSG_KEY, "69"),
541 };
542 verifyWithInlineConfigParser(
543 getPath("InputMagicNumberIgnoreFieldDeclaration4.java"), expected);
544 }
545
546 @Test
547 public void testIgnoreFieldDeclaration5()
548 throws Exception {
549 final String[] expected = {
550 "17:32: " + getCheckMessage(MSG_KEY, "22"),
551 "17:37: " + getCheckMessage(MSG_KEY, "7.0"),
552 "23:20: " + getCheckMessage(MSG_KEY, "10"),
553 "24:20: " + getCheckMessage(MSG_KEY, "10"),
554 "24:25: " + getCheckMessage(MSG_KEY, "20"),
555 "28:30: " + getCheckMessage(MSG_KEY, "4"),
556 "28:33: " + getCheckMessage(MSG_KEY, "5"),
557 "28:36: " + getCheckMessage(MSG_KEY, "6"),
558 "28:39: " + getCheckMessage(MSG_KEY, "7"),
559 "35:26: " + getCheckMessage(MSG_KEY, "2023"),
560 "35:32: " + getCheckMessage(MSG_KEY, "11"),
561 "35:36: " + getCheckMessage(MSG_KEY, "11"),
562 "35:40: " + getCheckMessage(MSG_KEY, "11"),
563 "42:16: " + getCheckMessage(MSG_KEY, "11"),
564 "42:20: " + getCheckMessage(MSG_KEY, "11"),
565 "42:24: " + getCheckMessage(MSG_KEY, "11"),
566 "48:41: " + getCheckMessage(MSG_KEY, "3"),
567 "49:61: " + getCheckMessage(MSG_KEY, "4"),
568 };
569 verifyWithInlineConfigParser(
570 getPath("InputMagicNumberIgnoreFieldDeclaration5.java"), expected);
571 }
572
573 @Test
574 public void testIgnoreFieldDeclaration6()
575 throws Exception {
576 final String[] expected = {
577 "16:38: " + getCheckMessage(MSG_KEY, "10"),
578 "17:46: " + getCheckMessage(MSG_KEY, "15"),
579 };
580 verifyWithInlineConfigParser(
581 getPath("InputMagicNumberIgnoreFieldDeclaration6.java"), expected);
582 }
583
584 @Test
585 public void testWaiverParentToken()
586 throws Exception {
587 final String[] expected = {
588 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
589 "56:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
590 "57:27: " + getCheckMessage(MSG_KEY, "3"),
591 "57:31: " + getCheckMessage(MSG_KEY, "4"),
592 "59:29: " + getCheckMessage(MSG_KEY, "3"),
593 "61:23: " + getCheckMessage(MSG_KEY, "3"),
594 "62:26: " + getCheckMessage(MSG_KEY, "1.5"),
595 "64:22: " + getCheckMessage(MSG_KEY, "3"),
596 "64:29: " + getCheckMessage(MSG_KEY, "5"),
597 "64:37: " + getCheckMessage(MSG_KEY, "3"),
598 "68:26: " + getCheckMessage(MSG_KEY, "3"),
599 "69:39: " + getCheckMessage(MSG_KEY, "3"),
600 "74:25: " + getCheckMessage(MSG_KEY, "010"),
601 "75:25: " + getCheckMessage(MSG_KEY, "011"),
602 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
603 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
604 "82:24: " + getCheckMessage(MSG_KEY, "0x10"),
605 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
606 "85:29: " + getCheckMessage(MSG_KEY, "0x10L"),
607 "86:29: " + getCheckMessage(MSG_KEY, "0X11l"),
608 "99:28: " + getCheckMessage(MSG_KEY, "3"),
609 };
610 verifyWithInlineConfigParser(
611 getPath("InputMagicNumberWaiverParentToken1.java"), expected);
612 }
613
614 @Test
615 public void testWaiverParentToken2()
616 throws Exception {
617 final String[] expected = {
618 "20:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
619 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
620 "29:29: " + getCheckMessage(MSG_KEY, "-2"),
621 "30:35: " + getCheckMessage(MSG_KEY, "+3.5"),
622 "31:36: " + getCheckMessage(MSG_KEY, "-2.5"),
623 "38:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
624 "39:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
625 "42:37: " + getCheckMessage(MSG_KEY, "020000000000"),
626 "43:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
627 "49:20: " + getCheckMessage(MSG_KEY, "378"),
628 "54:52: " + getCheckMessage(MSG_KEY, "27"),
629 "57:57: " + getCheckMessage(MSG_KEY, "3"),
630 "57:60: " + getCheckMessage(MSG_KEY, "3"),
631 "57:63: " + getCheckMessage(MSG_KEY, "3"),
632 "57:66: " + getCheckMessage(MSG_KEY, "3"),
633 };
634 verifyWithInlineConfigParser(
635 getPath("InputMagicNumberWaiverParentToken2.java"), expected);
636 }
637
638 @Test
639 public void testWaiverParentToken3()
640 throws Exception {
641 final String[] expected = {
642 "20:16: " + getCheckMessage(MSG_KEY, "31"),
643 "25:16: " + getCheckMessage(MSG_KEY, "42"),
644 "30:16: " + getCheckMessage(MSG_KEY, "13"),
645 "34:15: " + getCheckMessage(MSG_KEY, "21"),
646 "38:15: " + getCheckMessage(MSG_KEY, "37"),
647 "42:15: " + getCheckMessage(MSG_KEY, "101"),
648 "45:42: " + getCheckMessage(MSG_KEY, "42"),
649 "49:48: " + getCheckMessage(MSG_KEY, "43"),
650 "53:42: " + getCheckMessage(MSG_KEY, "-44"),
651 "57:48: " + getCheckMessage(MSG_KEY, "-45"),
652 "70:54: " + getCheckMessage(MSG_KEY, "62"),
653 "75:20: " + getCheckMessage(MSG_KEY, "0b101"),
654 "76:14: " + getCheckMessage(MSG_KEY,
655 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
656 "86:21: " + getCheckMessage(MSG_KEY, "122"),
657 };
658 verifyWithInlineConfigParser(
659 getPath("InputMagicNumberWaiverParentToken3.java"), expected);
660 }
661
662 @Test
663 public void testMagicNumberRecordsDefault()
664 throws Exception {
665 final String[] expected = {
666 "21:11: " + getCheckMessage(MSG_KEY, "6"),
667 "23:36: " + getCheckMessage(MSG_KEY, "7"),
668 "27:29: " + getCheckMessage(MSG_KEY, "8"),
669 "31:29: " + getCheckMessage(MSG_KEY, "8"),
670 "35:20: " + getCheckMessage(MSG_KEY, "10"),
671 };
672 verifyWithInlineConfigParser(
673 getNonCompilablePath("InputMagicNumberRecordsDefault.java"), expected);
674 }
675
676 @Test
677 public void testMagicNumberIgnoreFieldDeclarationRecords()
678 throws Exception {
679 final String[] expected = {
680 "21:11: " + getCheckMessage(MSG_KEY, "6"),
681 "27:29: " + getCheckMessage(MSG_KEY, "8"),
682 "31:29: " + getCheckMessage(MSG_KEY, "8"),
683 "35:20: " + getCheckMessage(MSG_KEY, "10"),
684 };
685 verifyWithInlineConfigParser(
686 getNonCompilablePath("InputMagicNumberIgnoreFieldDeclarationRecords.java"),
687 expected);
688 }
689
690 @Test
691 public void testMagicNumberIgnoreFieldDeclarationWithAnnotation()
692 throws Exception {
693 final String[] expected = {
694 "18:38: " + getCheckMessage(MSG_KEY, "3"),
695 "22:40: " + getCheckMessage(MSG_KEY, "60"),
696 "23:34: " + getCheckMessage(MSG_KEY, "20"),
697 };
698 verifyWithInlineConfigParser(
699 getPath("InputMagicNumberIgnoreFieldDeclarationWithAnnotation.java"),
700 expected);
701 }
702
703 @Test
704 public void testIgnoreInAnnotationElementDefault() throws Exception {
705 final String[] expected = {
706 "20:29: " + getCheckMessage(MSG_KEY, "10"),
707 "21:33: " + getCheckMessage(MSG_KEY, "11"),
708 };
709 verifyWithInlineConfigParser(
710 getPath("InputMagicNumberAnnotationElement.java"), expected);
711 }
712
713 @Test
714 public void testMagicNumber()
715 throws Exception {
716 final String[] expected = {
717 "40:29: " + getCheckMessage(MSG_KEY, "3.0"),
718 "41:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
719 "42:19: " + getCheckMessage(MSG_KEY, "3.0"),
720 "43:26: " + getCheckMessage(MSG_KEY, "1.5"),
721 "51:50: " + getCheckMessage(MSG_KEY, "5"),
722 "52:42: " + getCheckMessage(MSG_KEY, "3"),
723 "53:44: " + getCheckMessage(MSG_KEY, "3"),
724 "54:37: " + getCheckMessage(MSG_KEY, "8"),
725 "57:33: " + getCheckMessage(MSG_KEY, "3.0"),
726 "58:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
727 "59:23: " + getCheckMessage(MSG_KEY, "3.0"),
728 "60:30: " + getCheckMessage(MSG_KEY, "1.5"),
729 "70:33: " + getCheckMessage(MSG_KEY, "3.0"),
730 "71:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
731 "72:23: " + getCheckMessage(MSG_KEY, "3.0"),
732 "73:30: " + getCheckMessage(MSG_KEY, "1.5"),
733 "80:33: " + getCheckMessage(MSG_KEY, "3.0"),
734 "81:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
735 "82:23: " + getCheckMessage(MSG_KEY, "3.0"),
736 "83:30: " + getCheckMessage(MSG_KEY, "1.5"),
737 "92:33: " + getCheckMessage(MSG_KEY, "3.0"),
738 "93:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
739 "94:23: " + getCheckMessage(MSG_KEY, "3.0"),
740 "95:30: " + getCheckMessage(MSG_KEY, "1.5"),
741 "102:33: " + getCheckMessage(MSG_KEY, "3.0"),
742 "103:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
743 "104:23: " + getCheckMessage(MSG_KEY, "3.0"),
744 "105:30: " + getCheckMessage(MSG_KEY, "1.5"),
745 "114:33: " + getCheckMessage(MSG_KEY, "3.0"),
746 "115:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
747 "116:23: " + getCheckMessage(MSG_KEY, "3.0"),
748 "117:30: " + getCheckMessage(MSG_KEY, "1.5"),
749 };
750 verifyWithInlineConfigParser(
751 getPath("InputMagicNumberMagicNumber.java"), expected);
752 }
753
754 @Test
755 public void testMagicNumber2() throws Exception {
756 final String[] expected = {
757 "27:17: " + getCheckMessage(MSG_KEY, "9"),
758 "29:20: " + getCheckMessage(MSG_KEY, "5.5"),
759 "30:19: " + getCheckMessage(MSG_KEY, "12.2f"),
760 "35:28: " + getCheckMessage(MSG_KEY, "45"),
761 "43:21: " + getCheckMessage(MSG_KEY, "9"),
762 "45:24: " + getCheckMessage(MSG_KEY, "5.5"),
763 "46:23: " + getCheckMessage(MSG_KEY, "12.2f"),
764 "51:46: " + getCheckMessage(MSG_KEY, "5"),
765 "52:38: " + getCheckMessage(MSG_KEY, "5"),
766 "53:40: " + getCheckMessage(MSG_KEY, "5"),
767 "54:31: " + getCheckMessage(MSG_KEY, "5"),
768 "55:49: " + getCheckMessage(MSG_KEY, "5"),
769 "68:50: " + getCheckMessage(MSG_KEY, "5"),
770 "69:42: " + getCheckMessage(MSG_KEY, "5"),
771 "70:44: " + getCheckMessage(MSG_KEY, "5"),
772 "71:35: " + getCheckMessage(MSG_KEY, "5"),
773 "72:53: " + getCheckMessage(MSG_KEY, "5"),
774 };
775 verifyWithInlineConfigParser(
776 getPath("InputMagicNumberMagicNumber2.java"), expected);
777 }
778
779 @Test
780 public void testMagicNumber3() throws Exception {
781 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
782 verifyWithInlineConfigParser(
783 getPath("InputMagicNumberMagicNumber3.java"), expected);
784 }
785
786 @Test
787 public void testMagicNumberInGuards() throws Exception {
788 final String[] expected = {
789 "23:63: " + getCheckMessage(MSG_KEY, "3"),
790 "23:72: " + getCheckMessage(MSG_KEY, "8"),
791 "29:58: " + getCheckMessage(MSG_KEY, "3"),
792 "29:68: " + getCheckMessage(MSG_KEY, "6"),
793 "33:50: " + getCheckMessage(MSG_KEY, "10.88"),
794 "35:46: " + getCheckMessage(MSG_KEY, "6"),
795 "41:59: " + getCheckMessage(MSG_KEY, "0.5"),
796 "41:67: " + getCheckMessage(MSG_KEY, "5"),
797 "46:23: " + getCheckMessage(MSG_KEY, "6"),
798 };
799 verifyWithInlineConfigParser(
800 getNonCompilablePath("InputMagicNumberMagicNumberInGuards.java"), expected);
801 }
802
803 @Test
804 public void testMagicNumberWithUnnamedVariables() throws Exception {
805 final String[] expected = {
806 "22:17: " + getCheckMessage(MSG_KEY, "9"),
807 "24:21: " + getCheckMessage(MSG_KEY, "17"),
808 "25:20: " + getCheckMessage(MSG_KEY, "3.1415"),
809 };
810 verifyWithInlineConfigParser(
811 getNonCompilablePath("InputMagicNumberMagicNumberWithUnnamedVariables.java"),
812 expected);
813 }
814
815 @Test
816 public void testMagicNumberWithOperatorsWithIgnoreFieldsTrue() throws Exception {
817 final String[] expected = {
818 "35:35: " + getCheckMessage(MSG_KEY, "3"),
819 "36:35: " + getCheckMessage(MSG_KEY, "3"),
820 "37:36: " + getCheckMessage(MSG_KEY, "3"),
821 "38:34: " + getCheckMessage(MSG_KEY, "3"),
822 "39:34: " + getCheckMessage(MSG_KEY, "3"),
823 "40:34: " + getCheckMessage(MSG_KEY, "3"),
824 "41:34: " + getCheckMessage(MSG_KEY, "3"),
825 "42:31: " + getCheckMessage(MSG_KEY, "3"),
826 "55:25: " + getCheckMessage(MSG_KEY, "3"),
827 "54:25: " + getCheckMessage(MSG_KEY, "3"),
828 "56:26: " + getCheckMessage(MSG_KEY, "3"),
829 "57:24: " + getCheckMessage(MSG_KEY, "3"),
830 "58:24: " + getCheckMessage(MSG_KEY, "3"),
831 "59:24: " + getCheckMessage(MSG_KEY, "3"),
832 "60:24: " + getCheckMessage(MSG_KEY, "3"),
833 "61:21: " + getCheckMessage(MSG_KEY, "3"),
834 };
835 verifyWithInlineConfigParser(
836 getPath("InputMagicNumberWithOperatorsWithIgnoreFieldsTrue.java"),
837 expected);
838 }
839
840 @Test
841 public void testMagicNumberWithOperatorsWithIgnoreFieldsFalse() throws Exception {
842 final String[] expected = {
843 "54:25: " + getCheckMessage(MSG_KEY, "3"),
844 "55:25: " + getCheckMessage(MSG_KEY, "3"),
845 "56:26: " + getCheckMessage(MSG_KEY, "3"),
846 "57:24: " + getCheckMessage(MSG_KEY, "3"),
847 "58:24: " + getCheckMessage(MSG_KEY, "3"),
848 "59:24: " + getCheckMessage(MSG_KEY, "3"),
849 "60:24: " + getCheckMessage(MSG_KEY, "3"),
850 "61:21: " + getCheckMessage(MSG_KEY, "3"),
851 };
852 verifyWithInlineConfigParser(
853 getPath("InputMagicNumberWithOperatorsWithIgnoreFieldsFalse.java"),
854 expected);
855 }
856 }