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.google.common.truth.Truth.assertWithMessage;
23 import static com.puppycrawl.tools.checkstyle.checks.coding.PatternVariableAssignmentCheck.MSG_KEY;
24
25 import org.junit.jupiter.api.Test;
26
27 import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport;
28 import com.puppycrawl.tools.checkstyle.api.TokenTypes;
29
30 public class PatternVariableAssignmentCheckTest extends AbstractModuleTestSupport {
31
32 @Override
33 public String getPackageLocation() {
34 return "com/puppycrawl/tools/checkstyle/checks/coding/patternvariableassignment";
35 }
36
37 @Test
38 public void testGetAcceptableTokens() {
39 final PatternVariableAssignmentCheck patternVariableAssignmentCheckObj =
40 new PatternVariableAssignmentCheck();
41 final int[] actual = patternVariableAssignmentCheckObj.getAcceptableTokens();
42 final int[] expected = {
43 TokenTypes.LITERAL_INSTANCEOF,
44 };
45 assertWithMessage("Default acceptable tokens are invalid")
46 .that(actual)
47 .isEqualTo(expected);
48 }
49
50 @Test
51 public void testPatternVariableAssignmentCheck() throws Exception {
52
53 final String[] expected = {
54 "27:13: " + getCheckMessage(MSG_KEY, "s"),
55 "31:13: " + getCheckMessage(MSG_KEY, "x"),
56 "33:13: " + getCheckMessage(MSG_KEY, "y"),
57 "37:13: " + getCheckMessage(MSG_KEY, "c"),
58 "41:13: " + getCheckMessage(MSG_KEY, "c"),
59 "45:13: " + getCheckMessage(MSG_KEY, "c"),
60 "50:21: " + getCheckMessage(MSG_KEY, "d"),
61 "67:14: " + getCheckMessage(MSG_KEY, "f"),
62 };
63
64 verifyWithInlineXmlConfig(getPath(
65 "InputPatternVariableAssignmentCheck1.java"), expected);
66 }
67
68 @Test
69 public void testPatternVariableAssignmentCheck2() throws Exception {
70
71 final String[] expected = {
72 "55:17: " + getCheckMessage(MSG_KEY, "parent"),
73 "65:9: " + getCheckMessage(MSG_KEY, "r"),
74 "74:11: " + getCheckMessage(MSG_KEY, "r"),
75 "90:22: " + getCheckMessage(MSG_KEY, "string"),
76 };
77
78 verifyWithInlineXmlConfig(getPath(
79 "InputPatternVariableAssignmentCheck2.java"), expected);
80 }
81
82 @Test
83 public void testExtendedScope1() throws Exception {
84 final String[] expected = {
85 "15:13: " + getCheckMessage(MSG_KEY, "s"),
86 "23:13: " + getCheckMessage(MSG_KEY, "s"),
87 "24:13: " + getCheckMessage(MSG_KEY, "s"),
88 "27:13: " + getCheckMessage(MSG_KEY, "s"),
89 "32:17: " + getCheckMessage(MSG_KEY, "i"),
90 "36:13: " + getCheckMessage(MSG_KEY, "i"),
91 "43:17: " + getCheckMessage(MSG_KEY, "s"),
92 "46:13: " + getCheckMessage(MSG_KEY, "s"),
93 "51:21: " + getCheckMessage(MSG_KEY, "i"),
94 "54:21: " + getCheckMessage(MSG_KEY, "i"),
95 "62:17: " + getCheckMessage(MSG_KEY, "s"),
96 "64:17: " + getCheckMessage(MSG_KEY, "s"),
97 "68:13: " + getCheckMessage(MSG_KEY, "x"),
98 "69:13: " + getCheckMessage(MSG_KEY, "y"),
99 };
100 verifyWithInlineConfigParser(
101 getPath("InputPatternVariableAssignmentExtendedScope.java"), expected);
102 }
103
104 @Test
105 public void testExtendedScope2() throws Exception {
106 final String[] expected = {
107 "18:17: " + getCheckMessage(MSG_KEY, "s"),
108 "20:13: " + getCheckMessage(MSG_KEY, "s"),
109 "23:13: " + getCheckMessage(MSG_KEY, "s"),
110 "28:16: " + getCheckMessage(MSG_KEY, "s"),
111 "43:16: " + getCheckMessage(MSG_KEY, "s"),
112 "50:9: " + getCheckMessage(MSG_KEY, "s"),
113 "51:9: " + getCheckMessage(MSG_KEY, "s"),
114 "58:17: " + getCheckMessage(MSG_KEY, "s"),
115 };
116 verifyWithInlineConfigParser(
117 getPath("InputPatternVariableAssignmentExtendedScope2.java"), expected);
118 }
119
120 }