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 "25: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 "54:26: " + getCheckMessage(MSG_KEY, "3_000"),
60 "55:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
61 "56:27: " + getCheckMessage(MSG_KEY, "3"),
62 "56:31: " + getCheckMessage(MSG_KEY, "4"),
63 "58:29: " + getCheckMessage(MSG_KEY, "3"),
64 "60:23: " + getCheckMessage(MSG_KEY, "3"),
65 "61:26: " + getCheckMessage(MSG_KEY, "1.5"),
66 "63:22: " + getCheckMessage(MSG_KEY, "3"),
67 "63:29: " + getCheckMessage(MSG_KEY, "5"),
68 "63:37: " + getCheckMessage(MSG_KEY, "3"),
69 "67:26: " + getCheckMessage(MSG_KEY, "3"),
70 "68:39: " + getCheckMessage(MSG_KEY, "3"),
71 "72:25: " + getCheckMessage(MSG_KEY, "010"),
72 "73:25: " + getCheckMessage(MSG_KEY, "011"),
73 "75:30: " + getCheckMessage(MSG_KEY, "0_10L"),
74 "76:30: " + getCheckMessage(MSG_KEY, "011l"),
75 "79:24: " + getCheckMessage(MSG_KEY, "0x10"),
76 "80:24: " + getCheckMessage(MSG_KEY, "0X011"),
77 "82:29: " + getCheckMessage(MSG_KEY, "0x10L"),
78 "83:29: " + getCheckMessage(MSG_KEY, "0X11l"),
79 "96: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 "21:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
90 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
91 "29:29: " + getCheckMessage(MSG_KEY, "-2"),
92 "30:35: " + getCheckMessage(MSG_KEY, "+3.5"),
93 "31:36: " + getCheckMessage(MSG_KEY, "-2.5"),
94 "38:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
95 "39:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
96 "42:37: " + getCheckMessage(MSG_KEY, "020000000000"),
97 "43:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
98 "50: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 "20:16: " + getCheckMessage(MSG_KEY, "31"),
109 "25:16: " + getCheckMessage(MSG_KEY, "42"),
110 "30:16: " + getCheckMessage(MSG_KEY, "13"),
111 "34:15: " + getCheckMessage(MSG_KEY, "21"),
112 "38:15: " + getCheckMessage(MSG_KEY, "37"),
113 "42:15: " + getCheckMessage(MSG_KEY, "101"),
114 "45:42: " + getCheckMessage(MSG_KEY, "42"),
115 "49:48: " + getCheckMessage(MSG_KEY, "43"),
116 "53:42: " + getCheckMessage(MSG_KEY, "-44"),
117 "57:48: " + getCheckMessage(MSG_KEY, "-45"),
118 "74:20: " + getCheckMessage(MSG_KEY, "0b101"),
119 "75:14: " + getCheckMessage(MSG_KEY,
120 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
121 "85: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 "36:25: " + getCheckMessage(MSG_KEY, "2"),
133 "42:35: " + getCheckMessage(MSG_KEY, "2"),
134 "44:24: " + getCheckMessage(MSG_KEY, "2"),
135 "46:29: " + getCheckMessage(MSG_KEY, "2.0"),
136 "48:29: " + getCheckMessage(MSG_KEY, "2"),
137 "50:17: " + getCheckMessage(MSG_KEY, "2"),
138 "52:19: " + getCheckMessage(MSG_KEY, "2.0"),
139 "56:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
140 "57:31: " + getCheckMessage(MSG_KEY, "4"),
141 "62:26: " + getCheckMessage(MSG_KEY, "1.5"),
142 "64:29: " + getCheckMessage(MSG_KEY, "5"),
143 "75:25: " + getCheckMessage(MSG_KEY, "011"),
144 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
145 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
146 "86: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 "21:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
157 "30:29: " + getCheckMessage(MSG_KEY, "-2"),
158 "31:35: " + getCheckMessage(MSG_KEY, "+3.5"),
159 "32:36: " + getCheckMessage(MSG_KEY, "-2.5"),
160 "37:34: " + getCheckMessage(MSG_KEY, "0xffffffff"),
161 "38:36: " + getCheckMessage(MSG_KEY, "0xffffffffffffffffL"),
162 "39:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
163 "40:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
164 "41:36: " + getCheckMessage(MSG_KEY, "037777777777"),
165 "42:38: " + getCheckMessage(MSG_KEY, "01777777777777777777777L"),
166 "43:37: " + getCheckMessage(MSG_KEY, "020000000000"),
167 "44:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
168 "49: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 "21:16: " + getCheckMessage(MSG_KEY, "31"),
179 "26:16: " + getCheckMessage(MSG_KEY, "42"),
180 "31:16: " + getCheckMessage(MSG_KEY, "13"),
181 "35:15: " + getCheckMessage(MSG_KEY, "21"),
182 "39:15: " + getCheckMessage(MSG_KEY, "37"),
183 "43:15: " + getCheckMessage(MSG_KEY, "101"),
184 "75:20: " + getCheckMessage(MSG_KEY, "0b101"),
185 "76:14: " + getCheckMessage(MSG_KEY,
186 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
187 "86: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 "41:24: " + getCheckMessage(MSG_KEY, "1"),
198 "42:25: " + getCheckMessage(MSG_KEY, "2"),
199 "43:26: " + getCheckMessage(MSG_KEY, "0L"),
200 "44:26: " + getCheckMessage(MSG_KEY, "0l"),
201 "45:30: " + getCheckMessage(MSG_KEY, "0D"),
202 "46:30: " + getCheckMessage(MSG_KEY, "0d"),
203 "48:35: " + getCheckMessage(MSG_KEY, "2"),
204 "50:20: " + getCheckMessage(MSG_KEY, "1"),
205 "50:24: " + getCheckMessage(MSG_KEY, "2"),
206 "51:21: " + getCheckMessage(MSG_KEY, "1"),
207 "52:23: " + getCheckMessage(MSG_KEY, "1.0"),
208 "52:29: " + getCheckMessage(MSG_KEY, "2.0"),
209 "54:22: " + getCheckMessage(MSG_KEY, "0"),
210 "54:29: " + getCheckMessage(MSG_KEY, "2"),
211 "56:13: " + getCheckMessage(MSG_KEY, "1"),
212 "56:17: " + getCheckMessage(MSG_KEY, "2"),
213 "58:13: " + getCheckMessage(MSG_KEY, "1.0"),
214 "58:19: " + getCheckMessage(MSG_KEY, "2.0"),
215 "61:26: " + getCheckMessage(MSG_KEY, "3_000"),
216 "62:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
217 "63:27: " + getCheckMessage(MSG_KEY, "3"),
218 "63:31: " + getCheckMessage(MSG_KEY, "4"),
219 "65:29: " + getCheckMessage(MSG_KEY, "3"),
220 "67:23: " + getCheckMessage(MSG_KEY, "3"),
221 "68:26: " + getCheckMessage(MSG_KEY, "1.5"),
222 "70:22: " + getCheckMessage(MSG_KEY, "3"),
223 "70:29: " + getCheckMessage(MSG_KEY, "5"),
224 "70:37: " + getCheckMessage(MSG_KEY, "3"),
225 "74:26: " + getCheckMessage(MSG_KEY, "3"),
226 "75:39: " + getCheckMessage(MSG_KEY, "3"),
227 "79:25: " + getCheckMessage(MSG_KEY, "00"),
228 "80:25: " + getCheckMessage(MSG_KEY, "010"),
229 "81:25: " + getCheckMessage(MSG_KEY, "011"),
230 "83:30: " + getCheckMessage(MSG_KEY, "0_10L"),
231 "84:30: " + getCheckMessage(MSG_KEY, "011l"),
232 "87:23: " + getCheckMessage(MSG_KEY, "0x0"),
233 "88:24: " + getCheckMessage(MSG_KEY, "0x10"),
234 "89:24: " + getCheckMessage(MSG_KEY, "0X011"),
235 "90:28: " + getCheckMessage(MSG_KEY, "0x0L"),
236 "91:29: " + getCheckMessage(MSG_KEY, "0x10L"),
237 "92:29: " + getCheckMessage(MSG_KEY, "0X11l"),
238 "105: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 "19:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
249 "26:30: " + getCheckMessage(MSG_KEY, "+3"),
250 "27:29: " + getCheckMessage(MSG_KEY, "-2"),
251 "28:35: " + getCheckMessage(MSG_KEY, "+3.5"),
252 "29:36: " + getCheckMessage(MSG_KEY, "-2.5"),
253 "34:34: " + getCheckMessage(MSG_KEY, "0xffffffff"),
254 "35:36: " + getCheckMessage(MSG_KEY, "0xffffffffffffffffL"),
255 "36:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
256 "37:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
257 "38:36: " + getCheckMessage(MSG_KEY, "037777777777"),
258 "39:38: " + getCheckMessage(MSG_KEY, "01777777777777777777777L"),
259 "40:37: " + getCheckMessage(MSG_KEY, "020000000000"),
260 "41:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
261 "47: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 "20:16: " + getCheckMessage(MSG_KEY, "31"),
272 "25:16: " + getCheckMessage(MSG_KEY, "42"),
273 "30:16: " + getCheckMessage(MSG_KEY, "13"),
274 "34:15: " + getCheckMessage(MSG_KEY, "21"),
275 "38:15: " + getCheckMessage(MSG_KEY, "37"),
276 "42:15: " + getCheckMessage(MSG_KEY, "101"),
277 "74:20: " + getCheckMessage(MSG_KEY, "0b101"),
278 "75:14: " + getCheckMessage(MSG_KEY,
279 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
280 "85: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 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
291 "57:27: " + getCheckMessage(MSG_KEY, "3"),
292 "57:31: " + getCheckMessage(MSG_KEY, "4"),
293 "59:29: " + getCheckMessage(MSG_KEY, "3"),
294 "61:23: " + getCheckMessage(MSG_KEY, "3"),
295 "64:22: " + getCheckMessage(MSG_KEY, "3"),
296 "64:29: " + getCheckMessage(MSG_KEY, "5"),
297 "64:37: " + getCheckMessage(MSG_KEY, "3"),
298 "68:26: " + getCheckMessage(MSG_KEY, "3"),
299 "69:39: " + getCheckMessage(MSG_KEY, "3"),
300 "74:25: " + getCheckMessage(MSG_KEY, "010"),
301 "75:25: " + getCheckMessage(MSG_KEY, "011"),
302 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
303 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
304 "82:24: " + getCheckMessage(MSG_KEY, "0x10"),
305 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
306 "85:29: " + getCheckMessage(MSG_KEY, "0x10L"),
307 "86:29: " + getCheckMessage(MSG_KEY, "0X11l"),
308 "99: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 "20:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
319 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
320 "29:29: " + getCheckMessage(MSG_KEY, "-2"),
321 "38:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
322 "39:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
323 "42:37: " + getCheckMessage(MSG_KEY, "020000000000"),
324 "43:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
325 "49: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 "20:16: " + getCheckMessage(MSG_KEY, "31"),
336 "25:16: " + getCheckMessage(MSG_KEY, "42"),
337 "30:16: " + getCheckMessage(MSG_KEY, "13"),
338 "34:15: " + getCheckMessage(MSG_KEY, "21"),
339 "38:15: " + getCheckMessage(MSG_KEY, "37"),
340 "42:15: " + getCheckMessage(MSG_KEY, "101"),
341 "74:20: " + getCheckMessage(MSG_KEY, "0b101"),
342 "75:14: " + getCheckMessage(MSG_KEY,
343 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
344 "85: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 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
354 "57:27: " + getCheckMessage(MSG_KEY, "3"),
355 "57:31: " + getCheckMessage(MSG_KEY, "4"),
356 "59:29: " + getCheckMessage(MSG_KEY, "3"),
357 "61:23: " + getCheckMessage(MSG_KEY, "3"),
358 "64:22: " + getCheckMessage(MSG_KEY, "3"),
359 "64:29: " + getCheckMessage(MSG_KEY, "5"),
360 "64:37: " + getCheckMessage(MSG_KEY, "3"),
361 "68:26: " + getCheckMessage(MSG_KEY, "3"),
362 "69:39: " + getCheckMessage(MSG_KEY, "3"),
363 "74:25: " + getCheckMessage(MSG_KEY, "010"),
364 "75:25: " + getCheckMessage(MSG_KEY, "011"),
365 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
366 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
367 "82:24: " + getCheckMessage(MSG_KEY, "0x10"),
368 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
369 "85:29: " + getCheckMessage(MSG_KEY, "0x10L"),
370 "86:29: " + getCheckMessage(MSG_KEY, "0X11l"),
371 "99: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 "20:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
381 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
382 "50: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 "20:16: " + getCheckMessage(MSG_KEY, "31"),
392 "25:16: " + getCheckMessage(MSG_KEY, "42"),
393 "30:16: " + getCheckMessage(MSG_KEY, "13"),
394 "34:15: " + getCheckMessage(MSG_KEY, "21"),
395 "38:15: " + getCheckMessage(MSG_KEY, "37"),
396 "42:15: " + getCheckMessage(MSG_KEY, "101"),
397 "75:20: " + getCheckMessage(MSG_KEY, "0b101"),
398 "76:14: " + getCheckMessage(MSG_KEY,
399 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
400 "86: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 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
410 "56:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
411 "57:27: " + getCheckMessage(MSG_KEY, "3"),
412 "57:31: " + getCheckMessage(MSG_KEY, "4"),
413 "59:29: " + getCheckMessage(MSG_KEY, "3"),
414 "61:23: " + getCheckMessage(MSG_KEY, "3"),
415 "62:26: " + getCheckMessage(MSG_KEY, "1.5"),
416 "64:22: " + getCheckMessage(MSG_KEY, "3"),
417 "64:29: " + getCheckMessage(MSG_KEY, "5"),
418 "64:37: " + getCheckMessage(MSG_KEY, "3"),
419 "68:26: " + getCheckMessage(MSG_KEY, "3"),
420 "69:39: " + getCheckMessage(MSG_KEY, "3"),
421 "74:25: " + getCheckMessage(MSG_KEY, "010"),
422 "75:25: " + getCheckMessage(MSG_KEY, "011"),
423 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
424 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
425 "82:24: " + getCheckMessage(MSG_KEY, "0x10"),
426 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
427 "85:29: " + getCheckMessage(MSG_KEY, "0x10L"),
428 "86:29: " + getCheckMessage(MSG_KEY, "0X11l"),
429 "99: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 "20:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
439 "27:30: " + getCheckMessage(MSG_KEY, "+3"),
440 "28:29: " + getCheckMessage(MSG_KEY, "-2"),
441 "29:35: " + getCheckMessage(MSG_KEY, "+3.5"),
442 "30:36: " + getCheckMessage(MSG_KEY, "-2.5"),
443 "37:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
444 "38:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
445 "41:37: " + getCheckMessage(MSG_KEY, "020000000000"),
446 "42:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
447 "49: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 "25:16: " + getCheckMessage(MSG_KEY, "42"),
457 "30:16: " + getCheckMessage(MSG_KEY, "13"),
458 "34:15: " + getCheckMessage(MSG_KEY, "21"),
459 "38:15: " + getCheckMessage(MSG_KEY, "37"),
460 "42:15: " + getCheckMessage(MSG_KEY, "101"),
461 "75:20: " + getCheckMessage(MSG_KEY, "0b101"),
462 "76:14: " + getCheckMessage(MSG_KEY,
463 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
464 "86: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 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
475 "56:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
476 "57:27: " + getCheckMessage(MSG_KEY, "3"),
477 "57:31: " + getCheckMessage(MSG_KEY, "4"),
478 "59:29: " + getCheckMessage(MSG_KEY, "3"),
479 "61:23: " + getCheckMessage(MSG_KEY, "3"),
480 "62:26: " + getCheckMessage(MSG_KEY, "1.5"),
481 "64:22: " + getCheckMessage(MSG_KEY, "3"),
482 "64:29: " + getCheckMessage(MSG_KEY, "5"),
483 "64:37: " + getCheckMessage(MSG_KEY, "3"),
484 "68:26: " + getCheckMessage(MSG_KEY, "3"),
485 "69:39: " + getCheckMessage(MSG_KEY, "3"),
486 "74:25: " + getCheckMessage(MSG_KEY, "010"),
487 "75:25: " + getCheckMessage(MSG_KEY, "011"),
488 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
489 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
490 "82:24: " + getCheckMessage(MSG_KEY, "0x10"),
491 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
492 "85:29: " + getCheckMessage(MSG_KEY, "0x10L"),
493 "86: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 "49: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 "20:16: " + getCheckMessage(MSG_KEY, "31"),
514 "25:16: " + getCheckMessage(MSG_KEY, "42"),
515 "30:16: " + getCheckMessage(MSG_KEY, "13"),
516 "34:15: " + getCheckMessage(MSG_KEY, "21"),
517 "38:15: " + getCheckMessage(MSG_KEY, "37"),
518 "42:15: " + getCheckMessage(MSG_KEY, "101"),
519 "45:42: " + getCheckMessage(MSG_KEY, "42"),
520 "49:48: " + getCheckMessage(MSG_KEY, "43"),
521 "53:42: " + getCheckMessage(MSG_KEY, "-44"),
522 "57:48: " + getCheckMessage(MSG_KEY, "-45"),
523 "86:21: " + getCheckMessage(MSG_KEY, "122"),
524 };
525 verifyWithInlineConfigParser(
526 getPath("InputMagicNumberIgnoreFieldDeclaration3.java"), expected);
527 }
528
529 @Test
530 public void testWaiverParentToken()
531 throws Exception {
532 final String[] expected = {
533 "55:26: " + getCheckMessage(MSG_KEY, "3_000"),
534 "56:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
535 "57:27: " + getCheckMessage(MSG_KEY, "3"),
536 "57:31: " + getCheckMessage(MSG_KEY, "4"),
537 "59:29: " + getCheckMessage(MSG_KEY, "3"),
538 "61:23: " + getCheckMessage(MSG_KEY, "3"),
539 "62:26: " + getCheckMessage(MSG_KEY, "1.5"),
540 "64:22: " + getCheckMessage(MSG_KEY, "3"),
541 "64:29: " + getCheckMessage(MSG_KEY, "5"),
542 "64:37: " + getCheckMessage(MSG_KEY, "3"),
543 "68:26: " + getCheckMessage(MSG_KEY, "3"),
544 "69:39: " + getCheckMessage(MSG_KEY, "3"),
545 "74:25: " + getCheckMessage(MSG_KEY, "010"),
546 "75:25: " + getCheckMessage(MSG_KEY, "011"),
547 "77:30: " + getCheckMessage(MSG_KEY, "0_10L"),
548 "78:30: " + getCheckMessage(MSG_KEY, "011l"),
549 "82:24: " + getCheckMessage(MSG_KEY, "0x10"),
550 "83:24: " + getCheckMessage(MSG_KEY, "0X011"),
551 "85:29: " + getCheckMessage(MSG_KEY, "0x10L"),
552 "86:29: " + getCheckMessage(MSG_KEY, "0X11l"),
553 "99:28: " + getCheckMessage(MSG_KEY, "3"),
554 };
555 verifyWithInlineConfigParser(
556 getPath("InputMagicNumberWaiverParentToken1.java"), expected);
557 }
558
559 @Test
560 public void testWaiverParentToken2()
561 throws Exception {
562 final String[] expected = {
563 "20:14: " + getCheckMessage(MSG_KEY, "0xffffffffL"),
564 "28:30: " + getCheckMessage(MSG_KEY, "+3"),
565 "29:29: " + getCheckMessage(MSG_KEY, "-2"),
566 "30:35: " + getCheckMessage(MSG_KEY, "+3.5"),
567 "31:36: " + getCheckMessage(MSG_KEY, "-2.5"),
568 "38:35: " + getCheckMessage(MSG_KEY, "0x80000000"),
569 "39:36: " + getCheckMessage(MSG_KEY, "0x8000000000000000L"),
570 "42:37: " + getCheckMessage(MSG_KEY, "020000000000"),
571 "43:38: " + getCheckMessage(MSG_KEY, "01000000000000000000000L"),
572 "49:20: " + getCheckMessage(MSG_KEY, "378"),
573 "54:52: " + getCheckMessage(MSG_KEY, "27"),
574 "57:57: " + getCheckMessage(MSG_KEY, "3"),
575 "57:60: " + getCheckMessage(MSG_KEY, "3"),
576 "57:63: " + getCheckMessage(MSG_KEY, "3"),
577 "57:66: " + getCheckMessage(MSG_KEY, "3"),
578 };
579 verifyWithInlineConfigParser(
580 getPath("InputMagicNumberWaiverParentToken2.java"), expected);
581 }
582
583 @Test
584 public void testWaiverParentToken3()
585 throws Exception {
586 final String[] expected = {
587 "20:16: " + getCheckMessage(MSG_KEY, "31"),
588 "25:16: " + getCheckMessage(MSG_KEY, "42"),
589 "30:16: " + getCheckMessage(MSG_KEY, "13"),
590 "34:15: " + getCheckMessage(MSG_KEY, "21"),
591 "38:15: " + getCheckMessage(MSG_KEY, "37"),
592 "42:15: " + getCheckMessage(MSG_KEY, "101"),
593 "45:42: " + getCheckMessage(MSG_KEY, "42"),
594 "49:48: " + getCheckMessage(MSG_KEY, "43"),
595 "53:42: " + getCheckMessage(MSG_KEY, "-44"),
596 "57:48: " + getCheckMessage(MSG_KEY, "-45"),
597 "70:54: " + getCheckMessage(MSG_KEY, "62"),
598 "75:20: " + getCheckMessage(MSG_KEY, "0b101"),
599 "76:14: " + getCheckMessage(MSG_KEY,
600 "0b1010000101000101101000010100010110100001010001011010000101000101L"),
601 "86:21: " + getCheckMessage(MSG_KEY, "122"),
602 };
603 verifyWithInlineConfigParser(
604 getPath("InputMagicNumberWaiverParentToken3.java"), expected);
605 }
606
607 @Test
608 public void testMagicNumberRecordsDefault()
609 throws Exception {
610 final String[] expected = {
611 "19:11: " + getCheckMessage(MSG_KEY, "6"),
612 "21:36: " + getCheckMessage(MSG_KEY, "7"),
613 "25:29: " + getCheckMessage(MSG_KEY, "8"),
614 "29:29: " + getCheckMessage(MSG_KEY, "8"),
615 "33:20: " + getCheckMessage(MSG_KEY, "10"),
616 };
617 verifyWithInlineConfigParser(
618 getNonCompilablePath("InputMagicNumberRecordsDefault.java"), expected);
619 }
620
621 @Test
622 public void testMagicNumberIgnoreFieldDeclarationRecords()
623 throws Exception {
624 final String[] expected = {
625 "19:11: " + getCheckMessage(MSG_KEY, "6"),
626 "25:29: " + getCheckMessage(MSG_KEY, "8"),
627 "29:29: " + getCheckMessage(MSG_KEY, "8"),
628 "33:20: " + getCheckMessage(MSG_KEY, "10"),
629 };
630 verifyWithInlineConfigParser(
631 getNonCompilablePath("InputMagicNumberIgnoreFieldDeclarationRecords.java"),
632 expected);
633 }
634
635 @Test
636 public void testMagicNumberIgnoreFieldDeclarationWithAnnotation()
637 throws Exception {
638 final String[] expected = {
639 "16:38: " + getCheckMessage(MSG_KEY, "3"),
640 "20:40: " + getCheckMessage(MSG_KEY, "60"),
641 "21:34: " + getCheckMessage(MSG_KEY, "20"),
642 };
643 verifyWithInlineConfigParser(
644 getPath("InputMagicNumberIgnoreFieldDeclarationWithAnnotation.java"),
645 expected);
646 }
647
648 @Test
649 public void testIgnoreInAnnotationElementDefault() throws Exception {
650 final String[] expected = {
651 "18:29: " + getCheckMessage(MSG_KEY, "10"),
652 "19:33: " + getCheckMessage(MSG_KEY, "11"),
653 };
654 verifyWithInlineConfigParser(
655 getPath("InputMagicNumberAnnotationElement.java"), expected);
656 }
657
658 @Test
659 public void testMagicNumber()
660 throws Exception {
661 final String[] expected = {
662 "38:29: " + getCheckMessage(MSG_KEY, "3.0"),
663 "39:32: " + getCheckMessage(MSG_KEY, "1.5_0"),
664 "40:19: " + getCheckMessage(MSG_KEY, "3.0"),
665 "41:26: " + getCheckMessage(MSG_KEY, "1.5"),
666 "49:50: " + getCheckMessage(MSG_KEY, "5"),
667 "50:42: " + getCheckMessage(MSG_KEY, "3"),
668 "51:44: " + getCheckMessage(MSG_KEY, "3"),
669 "52:37: " + getCheckMessage(MSG_KEY, "8"),
670 "55:33: " + getCheckMessage(MSG_KEY, "3.0"),
671 "56:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
672 "57:23: " + getCheckMessage(MSG_KEY, "3.0"),
673 "58:30: " + getCheckMessage(MSG_KEY, "1.5"),
674 "68:33: " + getCheckMessage(MSG_KEY, "3.0"),
675 "69:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
676 "70:23: " + getCheckMessage(MSG_KEY, "3.0"),
677 "71:30: " + getCheckMessage(MSG_KEY, "1.5"),
678 "78:33: " + getCheckMessage(MSG_KEY, "3.0"),
679 "79:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
680 "80:23: " + getCheckMessage(MSG_KEY, "3.0"),
681 "81:30: " + getCheckMessage(MSG_KEY, "1.5"),
682 "90:33: " + getCheckMessage(MSG_KEY, "3.0"),
683 "91:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
684 "92:23: " + getCheckMessage(MSG_KEY, "3.0"),
685 "93:30: " + getCheckMessage(MSG_KEY, "1.5"),
686 "100:33: " + getCheckMessage(MSG_KEY, "3.0"),
687 "101:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
688 "102:23: " + getCheckMessage(MSG_KEY, "3.0"),
689 "103:30: " + getCheckMessage(MSG_KEY, "1.5"),
690 "112:33: " + getCheckMessage(MSG_KEY, "3.0"),
691 "113:36: " + getCheckMessage(MSG_KEY, "1.5_0"),
692 "114:23: " + getCheckMessage(MSG_KEY, "3.0"),
693 "115:30: " + getCheckMessage(MSG_KEY, "1.5"),
694 };
695 verifyWithInlineConfigParser(
696 getPath("InputMagicNumberMagicNumber.java"), expected);
697 }
698
699 @Test
700 public void testMagicNumber2() throws Exception {
701 final String[] expected = {
702 "25:17: " + getCheckMessage(MSG_KEY, "9"),
703 "27:20: " + getCheckMessage(MSG_KEY, "5.5"),
704 "28:19: " + getCheckMessage(MSG_KEY, "12.2f"),
705 "33:28: " + getCheckMessage(MSG_KEY, "45"),
706 "41:21: " + getCheckMessage(MSG_KEY, "9"),
707 "43:24: " + getCheckMessage(MSG_KEY, "5.5"),
708 "44:23: " + getCheckMessage(MSG_KEY, "12.2f"),
709 "49:46: " + getCheckMessage(MSG_KEY, "5"),
710 "50:38: " + getCheckMessage(MSG_KEY, "5"),
711 "51:40: " + getCheckMessage(MSG_KEY, "5"),
712 "52:31: " + getCheckMessage(MSG_KEY, "5"),
713 "53:49: " + getCheckMessage(MSG_KEY, "5"),
714 "66:50: " + getCheckMessage(MSG_KEY, "5"),
715 "67:42: " + getCheckMessage(MSG_KEY, "5"),
716 "68:44: " + getCheckMessage(MSG_KEY, "5"),
717 "69:35: " + getCheckMessage(MSG_KEY, "5"),
718 "70:53: " + getCheckMessage(MSG_KEY, "5"),
719 };
720 verifyWithInlineConfigParser(
721 getPath("InputMagicNumberMagicNumber2.java"), expected);
722 }
723
724 @Test
725 public void testMagicNumber3() throws Exception {
726 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
727 verifyWithInlineConfigParser(
728 getPath("InputMagicNumberMagicNumber3.java"), expected);
729 }
730
731 @Test
732 public void testMagicNumberInGuards() throws Exception {
733 final String[] expected = {
734 "21:63: " + getCheckMessage(MSG_KEY, "3"),
735 "21:72: " + getCheckMessage(MSG_KEY, "8"),
736 "27:58: " + getCheckMessage(MSG_KEY, "3"),
737 "27:68: " + getCheckMessage(MSG_KEY, "6"),
738 "31:50: " + getCheckMessage(MSG_KEY, "10.88"),
739 "33:46: " + getCheckMessage(MSG_KEY, "6"),
740 "39:59: " + getCheckMessage(MSG_KEY, "0.5"),
741 "39:67: " + getCheckMessage(MSG_KEY, "5"),
742 "44:23: " + getCheckMessage(MSG_KEY, "6"),
743 };
744 verifyWithInlineConfigParser(
745 getNonCompilablePath("InputMagicNumberMagicNumberInGuards.java"), expected);
746 }
747
748 @Test
749 public void testMagicNumberWithUnnamedVariables() throws Exception {
750 final String[] expected = {
751 "20:17: " + getCheckMessage(MSG_KEY, "9"),
752 "22:21: " + getCheckMessage(MSG_KEY, "17"),
753 "23:20: " + getCheckMessage(MSG_KEY, "3.1415"),
754 };
755 verifyWithInlineConfigParser(
756 getNonCompilablePath("InputMagicNumberMagicNumberWithUnnamedVariables.java"),
757 expected);
758 }
759 }