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 public 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 "28: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 "63:29: " + getCheckMessage(MSG_KEY, "3"),
64 "65:23: " + getCheckMessage(MSG_KEY, "3"),
65 "66:26: " + getCheckMessage(MSG_KEY, "1.5"),
66 "68:22: " + getCheckMessage(MSG_KEY, "3"),
67 "68:29: " + getCheckMessage(MSG_KEY, "5"),
68 "68:37: " + getCheckMessage(MSG_KEY, "3"),
69 "76:26: " + getCheckMessage(MSG_KEY, "3"),
70 "77:39: " + getCheckMessage(MSG_KEY, "3"),
71 "81:25: " + getCheckMessage(MSG_KEY, "010"),
72 "82:25: " + getCheckMessage(MSG_KEY, "011"),
73 "84:30: " + getCheckMessage(MSG_KEY, "0_10L"),
74 "85:30: " + getCheckMessage(MSG_KEY, "011l"),
75 "88:24: " + getCheckMessage(MSG_KEY, "0x10"),
76 "89:24: " + getCheckMessage(MSG_KEY, "0X011"),
77 "91:29: " + getCheckMessage(MSG_KEY, "0x10L"),
78 "92:29: " + getCheckMessage(MSG_KEY, "0X11l"),
79 "105: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 "45:37: " + getCheckMessage(MSG_KEY, "020000000000"),
97 "46:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
98 "54: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 "89: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 "42:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
163 "43:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
164 "45:36: " + getCheckMessage(MSG_KEY, "037777777777"),
165 "46:38: " + getCheckMessage(MSG_KEY, "01777777777777777777777L"),
166 "48:37: " + getCheckMessage(MSG_KEY, "020000000000"),
167 "49:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
168 "55: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 "90: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 "39:24: " + getCheckMessage(MSG_KEY, "1"),
198 "40:25: " + getCheckMessage(MSG_KEY, "2"),
199 "41:26: " + getCheckMessage(MSG_KEY, "0L"),
200 "42:26: " + getCheckMessage(MSG_KEY, "0l"),
201 "43:30: " + getCheckMessage(MSG_KEY, "0D"),
202 "44:30: " + getCheckMessage(MSG_KEY, "0d"),
203 "45:35: " + getCheckMessage(MSG_KEY, "2"),
204 "46:20: " + getCheckMessage(MSG_KEY, "1"),
205 "46:24: " + getCheckMessage(MSG_KEY, "2"),
206 "50:21: " + getCheckMessage(MSG_KEY, "1"),
207 "51:23: " + getCheckMessage(MSG_KEY, "1.0"),
208 "51:29: " + getCheckMessage(MSG_KEY, "2.0"),
209 "55:22: " + getCheckMessage(MSG_KEY, "0"),
210 "55:29: " + getCheckMessage(MSG_KEY, "2"),
211 "60:13: " + getCheckMessage(MSG_KEY, "1"),
212 "60:17: " + getCheckMessage(MSG_KEY, "2"),
213 "65:13: " + getCheckMessage(MSG_KEY, "1.0"),
214 "65:19: " + getCheckMessage(MSG_KEY, "2.0"),
215 "70:26: " + getCheckMessage(MSG_KEY, "3_000"),
216 "71:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
217 "72:27: " + getCheckMessage(MSG_KEY, "3"),
218 "72:31: " + getCheckMessage(MSG_KEY, "4"),
219 "77:29: " + getCheckMessage(MSG_KEY, "3"),
220 "78:23: " + getCheckMessage(MSG_KEY, "3"),
221 "79:26: " + getCheckMessage(MSG_KEY, "1.5"),
222 "81:22: " + getCheckMessage(MSG_KEY, "3"),
223 "81:29: " + getCheckMessage(MSG_KEY, "5"),
224 "81:37: " + getCheckMessage(MSG_KEY, "3"),
225 "89:26: " + getCheckMessage(MSG_KEY, "3"),
226 "90:39: " + getCheckMessage(MSG_KEY, "3"),
227 "93:25: " + getCheckMessage(MSG_KEY, "00"),
228 "94:25: " + getCheckMessage(MSG_KEY, "010"),
229 "95:25: " + getCheckMessage(MSG_KEY, "011"),
230 "96:30: " + getCheckMessage(MSG_KEY, "0_10L"),
231 "97:30: " + getCheckMessage(MSG_KEY, "011l"),
232 "98:23: " + getCheckMessage(MSG_KEY, "0x0"),
233 "99:24: " + getCheckMessage(MSG_KEY, "0x10"),
234 "100:24: " + getCheckMessage(MSG_KEY, "0X011"),
235 "101:28: " + getCheckMessage(MSG_KEY, "0x0L"),
236 "102:29: " + getCheckMessage(MSG_KEY, "0x10L"),
237 "103:29: " + getCheckMessage(MSG_KEY, "0X11l"),
238 "116: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 "39:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
256 "40:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
257 "42:36: " + getCheckMessage(MSG_KEY, "037777777777"),
258 "43:38: " + getCheckMessage(MSG_KEY, "01777777777777777777777L"),
259 "45:37: " + getCheckMessage(MSG_KEY, "020000000000"),
260 "46:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
261 "53: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 "89: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 "64:29: " + getCheckMessage(MSG_KEY, "3"),
294 "66:23: " + getCheckMessage(MSG_KEY, "3"),
295 "69:22: " + getCheckMessage(MSG_KEY, "3"),
296 "69:29: " + getCheckMessage(MSG_KEY, "5"),
297 "69:37: " + getCheckMessage(MSG_KEY, "3"),
298 "77:26: " + getCheckMessage(MSG_KEY, "3"),
299 "78:39: " + getCheckMessage(MSG_KEY, "3"),
300 "83:25: " + getCheckMessage(MSG_KEY, "010"),
301 "84:25: " + getCheckMessage(MSG_KEY, "011"),
302 "86:30: " + getCheckMessage(MSG_KEY, "0_10L"),
303 "87:30: " + getCheckMessage(MSG_KEY, "011l"),
304 "91:24: " + getCheckMessage(MSG_KEY, "0x10"),
305 "92:24: " + getCheckMessage(MSG_KEY, "0X011"),
306 "94:29: " + getCheckMessage(MSG_KEY, "0x10L"),
307 "95:29: " + getCheckMessage(MSG_KEY, "0X11l"),
308 "108: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 "45:37: " + getCheckMessage(MSG_KEY, "020000000000"),
324 "46:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
325 "53: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 "89: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 "64:29: " + getCheckMessage(MSG_KEY, "3"),
357 "66:23: " + getCheckMessage(MSG_KEY, "3"),
358 "69:22: " + getCheckMessage(MSG_KEY, "3"),
359 "69:29: " + getCheckMessage(MSG_KEY, "5"),
360 "69:37: " + getCheckMessage(MSG_KEY, "3"),
361 "77:26: " + getCheckMessage(MSG_KEY, "3"),
362 "78:39: " + getCheckMessage(MSG_KEY, "3"),
363 "83:25: " + getCheckMessage(MSG_KEY, "010"),
364 "84:25: " + getCheckMessage(MSG_KEY, "011"),
365 "86:30: " + getCheckMessage(MSG_KEY, "0_10L"),
366 "87:30: " + getCheckMessage(MSG_KEY, "011l"),
367 "91:24: " + getCheckMessage(MSG_KEY, "0x10"),
368 "92:24: " + getCheckMessage(MSG_KEY, "0X011"),
369 "94:29: " + getCheckMessage(MSG_KEY, "0x10L"),
370 "95:29: " + getCheckMessage(MSG_KEY, "0X11l"),
371 "108: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 "90: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 "64:29: " + getCheckMessage(MSG_KEY, "3"),
414 "66:23: " + getCheckMessage(MSG_KEY, "3"),
415 "67:26: " + getCheckMessage(MSG_KEY, "1.5"),
416 "69:22: " + getCheckMessage(MSG_KEY, "3"),
417 "69:29: " + getCheckMessage(MSG_KEY, "5"),
418 "69:37: " + getCheckMessage(MSG_KEY, "3"),
419 "77:26: " + getCheckMessage(MSG_KEY, "3"),
420 "78:39: " + getCheckMessage(MSG_KEY, "3"),
421 "83:25: " + getCheckMessage(MSG_KEY, "010"),
422 "84:25: " + getCheckMessage(MSG_KEY, "011"),
423 "86:30: " + getCheckMessage(MSG_KEY, "0_10L"),
424 "87:30: " + getCheckMessage(MSG_KEY, "011l"),
425 "91:24: " + getCheckMessage(MSG_KEY, "0x10"),
426 "92:24: " + getCheckMessage(MSG_KEY, "0X011"),
427 "94:29: " + getCheckMessage(MSG_KEY, "0x10L"),
428 "95:29: " + getCheckMessage(MSG_KEY, "0X11l"),
429 "108: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 "44:37: " + getCheckMessage(MSG_KEY, "020000000000"),
446 "45:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
447 "53: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 "90: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 "64:29: " + getCheckMessage(MSG_KEY, "3"),
479 "66:23: " + getCheckMessage(MSG_KEY, "3"),
480 "67:26: " + getCheckMessage(MSG_KEY, "1.5"),
481 "69:22: " + getCheckMessage(MSG_KEY, "3"),
482 "69:29: " + getCheckMessage(MSG_KEY, "5"),
483 "69:37: " + getCheckMessage(MSG_KEY, "3"),
484 "77:26: " + getCheckMessage(MSG_KEY, "3"),
485 "78:39: " + getCheckMessage(MSG_KEY, "3"),
486 "83:25: " + getCheckMessage(MSG_KEY, "010"),
487 "84:25: " + getCheckMessage(MSG_KEY, "011"),
488 "86:30: " + getCheckMessage(MSG_KEY, "0_10L"),
489 "87:30: " + getCheckMessage(MSG_KEY, "011l"),
490 "91:24: " + getCheckMessage(MSG_KEY, "0x10"),
491 "92:24: " + getCheckMessage(MSG_KEY, "0X011"),
492 "94:29: " + getCheckMessage(MSG_KEY, "0x10L"),
493 "95: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 "32:27: " + getCheckMessage(MSG_KEY, "5"),
534 "39:26: " + getCheckMessage(MSG_KEY, "86400_000"),
535 "48:31: " + getCheckMessage(MSG_KEY, "5"),
536 "49:32: " + getCheckMessage(MSG_KEY, "69"),
537 "58:27: " + getCheckMessage(MSG_KEY, "5"),
538 "65:26: " + getCheckMessage(MSG_KEY, "86400_000"),
539 "74:31: " + getCheckMessage(MSG_KEY, "5"),
540 "75: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 "20:32: " + getCheckMessage(MSG_KEY, "22"),
551 "20:37: " + getCheckMessage(MSG_KEY, "7.0"),
552 "26:20: " + getCheckMessage(MSG_KEY, "10"),
553 "27:20: " + getCheckMessage(MSG_KEY, "10"),
554 "27:25: " + getCheckMessage(MSG_KEY, "20"),
555 "31:30: " + getCheckMessage(MSG_KEY, "4"),
556 "31:33: " + getCheckMessage(MSG_KEY, "5"),
557 "31:36: " + getCheckMessage(MSG_KEY, "6"),
558 "31:39: " + getCheckMessage(MSG_KEY, "7"),
559 "38:26: " + getCheckMessage(MSG_KEY, "2023"),
560 "38:32: " + getCheckMessage(MSG_KEY, "11"),
561 "38:36: " + getCheckMessage(MSG_KEY, "11"),
562 "38:40: " + getCheckMessage(MSG_KEY, "11"),
563 "45:16: " + getCheckMessage(MSG_KEY, "11"),
564 "45:20: " + getCheckMessage(MSG_KEY, "11"),
565 "45:24: " + getCheckMessage(MSG_KEY, "11"),
566 "51:41: " + getCheckMessage(MSG_KEY, "3"),
567 "52: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 "19:38: " + getCheckMessage(MSG_KEY, "10"),
578 "20:46: " + getCheckMessage(MSG_KEY, "15"),
579 };
580 verifyWithInlineConfigParser(
581 getPath("InputMagicNumberIgnoreFieldDeclaration6.java"), expected);
582 }
583
584 @Test
585 public void testIgnoreFieldDeclaration7()
586 throws Exception {
587 final String[] expected = {
588 "19:38: " + getCheckMessage(MSG_KEY, "10"),
589 "20:46: " + getCheckMessage(MSG_KEY, "15"),
590 };
591 verifyWithInlineConfigParser(
592 getPath("InputMagicNumberIgnoreFieldDeclaration7.java"), expected);
593 }
594
595 @Test
596 public void testWaiverParentToken()
597 throws Exception {
598 final String[] expected = {
599 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
600 "56:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
601 "57:27: " + getCheckMessage(MSG_KEY, "3"),
602 "57:31: " + getCheckMessage(MSG_KEY, "4"),
603 "62:29: " + getCheckMessage(MSG_KEY, "3"),
604 "64:23: " + getCheckMessage(MSG_KEY, "3"),
605 "65:26: " + getCheckMessage(MSG_KEY, "1.5"),
606 "67:22: " + getCheckMessage(MSG_KEY, "3"),
607 "67:29: " + getCheckMessage(MSG_KEY, "5"),
608 "67:37: " + getCheckMessage(MSG_KEY, "3"),
609 "76:26: " + getCheckMessage(MSG_KEY, "3"),
610 "77:39: " + getCheckMessage(MSG_KEY, "3"),
611 "82:25: " + getCheckMessage(MSG_KEY, "010"),
612 "83:25: " + getCheckMessage(MSG_KEY, "011"),
613 "85:30: " + getCheckMessage(MSG_KEY, "0_10L"),
614 "86:30: " + getCheckMessage(MSG_KEY, "011l"),
615 "90:24: " + getCheckMessage(MSG_KEY, "0x10"),
616 "91:24: " + getCheckMessage(MSG_KEY, "0X011"),
617 "93:29: " + getCheckMessage(MSG_KEY, "0x10L"),
618 "94:29: " + getCheckMessage(MSG_KEY, "0X11l"),
619 "107:28: " + getCheckMessage(MSG_KEY, "3"),
620 };
621 verifyWithInlineConfigParser(
622 getPath("InputMagicNumberWaiverParentToken1.java"), expected);
623 }
624
625 @Test
626 public void testWaiverParentToken2()
627 throws Exception {
628 final String[] expected = {
629 "20:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
630 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
631 "29:29: " + getCheckMessage(MSG_KEY, "-2"),
632 "30:35: " + getCheckMessage(MSG_KEY, "+3.5"),
633 "31:36: " + getCheckMessage(MSG_KEY, "-2.5"),
634 "38:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
635 "39:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
636 "43:37: " + getCheckMessage(MSG_KEY, "020000000000"),
637 "44:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
638 "51:20: " + getCheckMessage(MSG_KEY, "378"),
639 "56:52: " + getCheckMessage(MSG_KEY, "27"),
640 "59:57: " + getCheckMessage(MSG_KEY, "3"),
641 "59:60: " + getCheckMessage(MSG_KEY, "3"),
642 "59:63: " + getCheckMessage(MSG_KEY, "3"),
643 "59:66: " + getCheckMessage(MSG_KEY, "3"),
644 };
645 verifyWithInlineConfigParser(
646 getPath("InputMagicNumberWaiverParentToken2.java"), expected);
647 }
648
649 @Test
650 public void testWaiverParentToken3()
651 throws Exception {
652 final String[] expected = {
653 "20:16: " + getCheckMessage(MSG_KEY, "31"),
654 "25:16: " + getCheckMessage(MSG_KEY, "42"),
655 "30:16: " + getCheckMessage(MSG_KEY, "13"),
656 "34:15: " + getCheckMessage(MSG_KEY, "21"),
657 "38:15: " + getCheckMessage(MSG_KEY, "37"),
658 "42:15: " + getCheckMessage(MSG_KEY, "101"),
659 "45:42: " + getCheckMessage(MSG_KEY, "42"),
660 "49:48: " + getCheckMessage(MSG_KEY, "43"),
661 "53:42: " + getCheckMessage(MSG_KEY, "-44"),
662 "57:48: " + getCheckMessage(MSG_KEY, "-45"),
663 "70:54: " + getCheckMessage(MSG_KEY, "62"),
664 "75:20: " + getCheckMessage(MSG_KEY, "0b101"),
665 "76:14: " + getCheckMessage(MSG_KEY,
666 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
667 "88:21: " + getCheckMessage(MSG_KEY, "122"),
668 };
669 verifyWithInlineConfigParser(
670 getPath("InputMagicNumberWaiverParentToken3.java"), expected);
671 }
672
673 @Test
674 public void testMagicNumberRecordsDefault()
675 throws Exception {
676 final String[] expected = {
677 "21:11: " + getCheckMessage(MSG_KEY, "6"),
678 "23:36: " + getCheckMessage(MSG_KEY, "7"),
679 "27:29: " + getCheckMessage(MSG_KEY, "8"),
680 "31:29: " + getCheckMessage(MSG_KEY, "8"),
681 "35:20: " + getCheckMessage(MSG_KEY, "10"),
682 };
683 verifyWithInlineConfigParser(
684 getPath("InputMagicNumberRecordsDefault.java"), expected);
685 }
686
687 @Test
688 public void testMagicNumberIgnoreFieldDeclarationRecords()
689 throws Exception {
690 final String[] expected = {
691 "21:11: " + getCheckMessage(MSG_KEY, "6"),
692 "27:29: " + getCheckMessage(MSG_KEY, "8"),
693 "31:29: " + getCheckMessage(MSG_KEY, "8"),
694 "35:20: " + getCheckMessage(MSG_KEY, "10"),
695 };
696 verifyWithInlineConfigParser(
697 getPath("InputMagicNumberIgnoreFieldDeclarationRecords.java"),
698 expected);
699 }
700
701 @Test
702 public void testMagicNumberIgnoreFieldDeclarationWithAnnotation()
703 throws Exception {
704 final String[] expected = {
705 "18:38: " + getCheckMessage(MSG_KEY, "3"),
706 "22:40: " + getCheckMessage(MSG_KEY, "60"),
707 "23:34: " + getCheckMessage(MSG_KEY, "20"),
708 };
709 verifyWithInlineConfigParser(
710 getPath("InputMagicNumberIgnoreFieldDeclarationWithAnnotation.java"),
711 expected);
712 }
713
714 @Test
715 public void testIgnoreInAnnotationElementDefault() throws Exception {
716 final String[] expected = {
717 "20:29: " + getCheckMessage(MSG_KEY, "10"),
718 "21:33: " + getCheckMessage(MSG_KEY, "11"),
719 };
720 verifyWithInlineConfigParser(
721 getPath("InputMagicNumberAnnotationElement.java"), expected);
722 }
723
724 @Test
725 public void testMagicNumber()
726 throws Exception {
727 final String[] expected = {
728 "40:29: " + getCheckMessage(MSG_KEY, "3.0"),
729 "41:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
730 "42:19: " + getCheckMessage(MSG_KEY, "3.0"),
731 "43:26: " + getCheckMessage(MSG_KEY, "1.5"),
732 "51:50: " + getCheckMessage(MSG_KEY, "5"),
733 "52:42: " + getCheckMessage(MSG_KEY, "3"),
734 "53:44: " + getCheckMessage(MSG_KEY, "3"),
735 "54:37: " + getCheckMessage(MSG_KEY, "8"),
736 "57:33: " + getCheckMessage(MSG_KEY, "3.0"),
737 "58:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
738 "59:23: " + getCheckMessage(MSG_KEY, "3.0"),
739 "60:30: " + getCheckMessage(MSG_KEY, "1.5"),
740 "70:33: " + getCheckMessage(MSG_KEY, "3.0"),
741 "71:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
742 "72:23: " + getCheckMessage(MSG_KEY, "3.0"),
743 "73:30: " + getCheckMessage(MSG_KEY, "1.5"),
744 "80:33: " + getCheckMessage(MSG_KEY, "3.0"),
745 "81:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
746 "82:23: " + getCheckMessage(MSG_KEY, "3.0"),
747 "83:30: " + getCheckMessage(MSG_KEY, "1.5"),
748 "92:33: " + getCheckMessage(MSG_KEY, "3.0"),
749 "93:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
750 "94:23: " + getCheckMessage(MSG_KEY, "3.0"),
751 "95:30: " + getCheckMessage(MSG_KEY, "1.5"),
752 "102:33: " + getCheckMessage(MSG_KEY, "3.0"),
753 "103:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
754 "104:23: " + getCheckMessage(MSG_KEY, "3.0"),
755 "105:30: " + getCheckMessage(MSG_KEY, "1.5"),
756 "114:33: " + getCheckMessage(MSG_KEY, "3.0"),
757 "115:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
758 "116:23: " + getCheckMessage(MSG_KEY, "3.0"),
759 "117:30: " + getCheckMessage(MSG_KEY, "1.5"),
760 };
761 verifyWithInlineConfigParser(
762 getPath("InputMagicNumberMagicNumber.java"), expected);
763 }
764
765 @Test
766 public void testMagicNumber2() throws Exception {
767 final String[] expected = {
768 "27:17: " + getCheckMessage(MSG_KEY, "9"),
769 "29:20: " + getCheckMessage(MSG_KEY, "5.5"),
770 "30:19: " + getCheckMessage(MSG_KEY, "12.2f"),
771 "35:28: " + getCheckMessage(MSG_KEY, "45"),
772 "43:21: " + getCheckMessage(MSG_KEY, "9"),
773 "45:24: " + getCheckMessage(MSG_KEY, "5.5"),
774 "46:23: " + getCheckMessage(MSG_KEY, "12.2f"),
775 "51:46: " + getCheckMessage(MSG_KEY, "5"),
776 "52:38: " + getCheckMessage(MSG_KEY, "5"),
777 "53:40: " + getCheckMessage(MSG_KEY, "5"),
778 "54:31: " + getCheckMessage(MSG_KEY, "5"),
779 "55:49: " + getCheckMessage(MSG_KEY, "5"),
780 "68:50: " + getCheckMessage(MSG_KEY, "5"),
781 "69:42: " + getCheckMessage(MSG_KEY, "5"),
782 "70:44: " + getCheckMessage(MSG_KEY, "5"),
783 "71:35: " + getCheckMessage(MSG_KEY, "5"),
784 "72:53: " + getCheckMessage(MSG_KEY, "5"),
785 };
786 verifyWithInlineConfigParser(
787 getPath("InputMagicNumberMagicNumber2.java"), expected);
788 }
789
790 @Test
791 public void testMagicNumber3() throws Exception {
792 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
793 verifyWithInlineConfigParser(
794 getPath("InputMagicNumberMagicNumber3.java"), expected);
795 }
796
797 @Test
798 public void testMagicNumberInGuards() throws Exception {
799 final String[] expected = {
800 "23:63: " + getCheckMessage(MSG_KEY, "3"),
801 "23:72: " + getCheckMessage(MSG_KEY, "8"),
802 "29:58: " + getCheckMessage(MSG_KEY, "3"),
803 "29:68: " + getCheckMessage(MSG_KEY, "6"),
804 "33:50: " + getCheckMessage(MSG_KEY, "10.88"),
805 "35:46: " + getCheckMessage(MSG_KEY, "6"),
806 "41:59: " + getCheckMessage(MSG_KEY, "0.5"),
807 "41:67: " + getCheckMessage(MSG_KEY, "5"),
808 "46:23: " + getCheckMessage(MSG_KEY, "6"),
809 };
810 verifyWithInlineConfigParser(
811 getNonCompilablePath("InputMagicNumberMagicNumberInGuards.java"), expected);
812 }
813
814 @Test
815 public void testMagicNumberWithUnnamedVariables() throws Exception {
816 final String[] expected = {
817 "22:17: " + getCheckMessage(MSG_KEY, "9"),
818 "24:21: " + getCheckMessage(MSG_KEY, "17"),
819 "25:20: " + getCheckMessage(MSG_KEY, "3.1415"),
820 };
821 verifyWithInlineConfigParser(
822 getNonCompilablePath("InputMagicNumberMagicNumberWithUnnamedVariables.java"),
823 expected);
824 }
825
826 @Test
827 public void testMagicNumberWithOperatorsWithIgnoreFieldsTrue() throws Exception {
828 final String[] expected = {
829 "35:35: " + getCheckMessage(MSG_KEY, "3"),
830 "36:35: " + getCheckMessage(MSG_KEY, "3"),
831 "37:36: " + getCheckMessage(MSG_KEY, "3"),
832 "38:34: " + getCheckMessage(MSG_KEY, "3"),
833 "39:34: " + getCheckMessage(MSG_KEY, "3"),
834 "40:34: " + getCheckMessage(MSG_KEY, "3"),
835 "41:34: " + getCheckMessage(MSG_KEY, "3"),
836 "42:31: " + getCheckMessage(MSG_KEY, "3"),
837 "55:25: " + getCheckMessage(MSG_KEY, "3"),
838 "54:25: " + getCheckMessage(MSG_KEY, "3"),
839 "56:26: " + getCheckMessage(MSG_KEY, "3"),
840 "57:24: " + getCheckMessage(MSG_KEY, "3"),
841 "58:24: " + getCheckMessage(MSG_KEY, "3"),
842 "59:24: " + getCheckMessage(MSG_KEY, "3"),
843 "60:24: " + getCheckMessage(MSG_KEY, "3"),
844 "61:21: " + getCheckMessage(MSG_KEY, "3"),
845 };
846 verifyWithInlineConfigParser(
847 getPath("InputMagicNumberWithOperatorsWithIgnoreFieldsTrue.java"),
848 expected);
849 }
850
851 @Test
852 public void testMagicNumberWithOperatorsWithIgnoreFieldsFalse() throws Exception {
853 final String[] expected = {
854 "54:25: " + getCheckMessage(MSG_KEY, "3"),
855 "55:25: " + getCheckMessage(MSG_KEY, "3"),
856 "56:26: " + getCheckMessage(MSG_KEY, "3"),
857 "57:24: " + getCheckMessage(MSG_KEY, "3"),
858 "58:24: " + getCheckMessage(MSG_KEY, "3"),
859 "59:24: " + getCheckMessage(MSG_KEY, "3"),
860 "60:24: " + getCheckMessage(MSG_KEY, "3"),
861 "61:21: " + getCheckMessage(MSG_KEY, "3"),
862 };
863 verifyWithInlineConfigParser(
864 getPath("InputMagicNumberWithOperatorsWithIgnoreFieldsFalse.java"),
865 expected);
866 }
867
868 @Test
869 public void testMagicNumberInCompactSourceFilesWithIgnoreFieldDeclaration() throws Exception {
870 final String[] expected = {
871 "21:24: " + getCheckMessage(MSG_KEY, "456"),
872 };
873
874 verifyWithInlineConfigParser(
875 getNonCompilablePath("InputMagicNumberCompactSourceFile.java"), expected);
876 }
877
878 }