1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.puppycrawl.tools.checkstyle.checks.naming;
21
22 import static com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck.MSG_KEY;
23
24 import org.junit.Test;
25
26 import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport;
27 import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
28 import com.puppycrawl.tools.checkstyle.utils.CommonUtil;
29
30 public class AbbreviationAsWordInNameCheckTest extends AbstractModuleTestSupport {
31
32 @Override
33 protected String getPackageLocation() {
34 return "com/puppycrawl/tools/checkstyle/checks/naming/abbreviationaswordinname";
35 }
36
37 @Test
38 public void testDefault() throws Exception {
39 final DefaultConfiguration checkConfig =
40 createModuleConfig(AbbreviationAsWordInNameCheck.class);
41 final int expectedCapitalCount = 4;
42
43 final String[] expected = {
44 "9: " + getWarningMessage("FactoryWithBADNAme", expectedCapitalCount),
45 "12: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
46 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
47 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
48 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
49 "39: " + getWarningMessage("marazmaticVARIABLEName", expectedCapitalCount),
50 "40: " + getWarningMessage("MARAZMATICVariableName", expectedCapitalCount),
51 "58: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
52 };
53
54 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
55 }
56
57 @Test
58 public void testTypeNamesForThreePermittedCapitalLetters() throws Exception {
59 final DefaultConfiguration checkConfig =
60 createModuleConfig(AbbreviationAsWordInNameCheck.class);
61 checkConfig.addAttribute("allowedAbbreviationLength", "3");
62 checkConfig.addAttribute("allowedAbbreviations", "III");
63 checkConfig.addAttribute("tokens", "CLASS_DEF");
64 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
65 final int expectedCapitalCount = 4;
66
67 final String[] expected = {
68 "9: " + getWarningMessage("FactoryWithBADNAme", expectedCapitalCount),
69 "12: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
70 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
71 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
72 };
73
74 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
75 }
76
77 @Test
78 public void testTypeNamesForFourPermittedCapitalLetters() throws Exception {
79 final DefaultConfiguration checkConfig =
80 createModuleConfig(AbbreviationAsWordInNameCheck.class);
81 checkConfig.addAttribute("allowedAbbreviationLength", "4");
82 checkConfig.addAttribute("allowedAbbreviations", "CLASS,FACTORY");
83 checkConfig.addAttribute("tokens", "CLASS_DEF");
84 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
85 final int expectedCapitalCount = 5;
86
87 final String[] expected = {
88 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
89 };
90
91 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
92 }
93
94 @Test
95 public void testTypeNamesForFivePermittedCapitalLetters() throws Exception {
96 final DefaultConfiguration checkConfig =
97 createModuleConfig(AbbreviationAsWordInNameCheck.class);
98 checkConfig.addAttribute("allowedAbbreviationLength", "5");
99 checkConfig.addAttribute("allowedAbbreviations", "CLASS");
100 checkConfig.addAttribute("tokens", "CLASS_DEF");
101 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
102 final int expectedCapitalCount = 6;
103 final String[] expected = {
104 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
105 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
106 };
107
108 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
109 }
110
111 @Test
112 public void testTypeAndVariablesAndMethodNames() throws Exception {
113 final DefaultConfiguration checkConfig =
114 createModuleConfig(AbbreviationAsWordInNameCheck.class);
115 checkConfig.addAttribute("allowedAbbreviationLength", "5");
116 checkConfig.addAttribute("allowedAbbreviations", "CLASS");
117 checkConfig.addAttribute("tokens", "CLASS_DEF"
118 + ",VARIABLE_DEF"
119 + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF"
120 + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF");
121 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
122 final int expectedCapitalCount = 6;
123
124 final String[] expected = {
125 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
126 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
127 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
128 "39: " + getWarningMessage("marazmaticVARIABLEName", expectedCapitalCount),
129 "40: " + getWarningMessage("MARAZMATICVariableName", expectedCapitalCount),
130 };
131
132 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
133 }
134
135 @Test
136 public void testTypeAndVariablesAndMethodNamesWithNoIgnores() throws Exception {
137 final DefaultConfiguration checkConfig =
138 createModuleConfig(AbbreviationAsWordInNameCheck.class);
139 checkConfig.addAttribute("allowedAbbreviationLength", "5");
140 checkConfig.addAttribute("allowedAbbreviations", "NUMBER,MARAZMATIC,VARIABLE");
141 checkConfig.addAttribute("ignoreStatic", "false");
142 checkConfig.addAttribute("ignoreFinal", "false");
143 checkConfig.addAttribute("tokens", "CLASS_DEF"
144 + ",VARIABLE_DEF"
145 + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF"
146 + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF");
147 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
148 final int expectedCapitalCount = 6;
149
150 final String[] expected = {
151 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
152 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
153 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
154 "66: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
155 "72: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
156 "78: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
157 "84: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
158 };
159
160 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
161 }
162
163 @Test
164 public void testTypeAndVariablesAndMethodNamesWithIgnores() throws Exception {
165 final DefaultConfiguration checkConfig =
166 createModuleConfig(AbbreviationAsWordInNameCheck.class);
167 checkConfig.addAttribute("allowedAbbreviationLength", "5");
168 checkConfig.addAttribute("allowedAbbreviations", "NUMBER,MARAZMATIC,VARIABLE");
169 checkConfig.addAttribute("ignoreStatic", "true");
170 checkConfig.addAttribute("ignoreFinal", "true");
171 checkConfig.addAttribute("tokens", "CLASS_DEF"
172 + ",VARIABLE_DEF"
173 + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF"
174 + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF");
175 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
176 final int expectedCapitalCount = 6;
177
178 final String[] expected = {
179 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
180 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
181 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
182 };
183
184 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
185 }
186
187 @Test
188 public void testTypeAndVariablesAndMethodNamesWithIgnoresFinal() throws Exception {
189 final DefaultConfiguration checkConfig =
190 createModuleConfig(AbbreviationAsWordInNameCheck.class);
191 checkConfig.addAttribute("allowedAbbreviationLength", "4");
192 checkConfig.addAttribute("allowedAbbreviations", "MARAZMATIC,VARIABLE");
193 checkConfig.addAttribute("ignoreStatic", "false");
194 checkConfig.addAttribute("ignoreFinal", "true");
195 checkConfig.addAttribute("tokens", "CLASS_DEF"
196 + ",VARIABLE_DEF"
197 + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF"
198 + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF");
199 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
200 final int expectedCapitalCount = 5;
201
202 final String[] expected = {
203 "12: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
204 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
205 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
206 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
207 "58: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
208 "60: "
209 + getWarningMessage("s2erialNUMBER", expectedCapitalCount),
210 };
211
212 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
213 }
214
215 @Test
216 public void testTypeAndVariablesAndMethodNamesWithIgnoresStatic() throws Exception {
217 final DefaultConfiguration checkConfig =
218 createModuleConfig(AbbreviationAsWordInNameCheck.class);
219 checkConfig.addAttribute("allowedAbbreviationLength", "5");
220 checkConfig.addAttribute("allowedAbbreviations", "MARAZMATIC,VARIABLE");
221 checkConfig.addAttribute("ignoreStatic", "true");
222 checkConfig.addAttribute("ignoreFinal", "false");
223 checkConfig.addAttribute("tokens", "CLASS_DEF"
224 + ",VARIABLE_DEF"
225 + ",METHOD_DEF,ENUM_DEF,ENUM_CONSTANT_DEF"
226 + ",PARAMETER_DEF,INTERFACE_DEF,ANNOTATION_DEF");
227 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
228 final int expectedCapitalCount = 6;
229
230 final String[] expected = {
231 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
232 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
233 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
234 };
235
236 verify(checkConfig, getPath("InputAbbreviationAsWordInNameType.java"), expected);
237 }
238
239 @Test
240 public void testTypeNamesForThreePermittedCapitalLettersWithOverriddenMethod()
241 throws Exception {
242 final DefaultConfiguration checkConfig =
243 createModuleConfig(AbbreviationAsWordInNameCheck.class);
244 checkConfig.addAttribute("allowedAbbreviationLength", "3");
245 checkConfig.addAttribute("allowedAbbreviations", "");
246 checkConfig.addAttribute("tokens", "CLASS_DEF, METHOD_DEF");
247 checkConfig.addAttribute("ignoreOverriddenMethods", "true");
248 final int expectedCapitalCount = 4;
249
250 final String[] expected = {
251 "22: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
252 };
253
254 verify(checkConfig,
255 getPath("InputAbbreviationAsWordInNameOverridableMethod.java"), expected);
256 }
257
258 @Test
259 public void testOverriddenMethod()
260 throws Exception {
261 final DefaultConfiguration checkConfig =
262 createModuleConfig(AbbreviationAsWordInNameCheck.class);
263 checkConfig.addAttribute("ignoreOverriddenMethods", "false");
264 final int expectedCapitalCount = 4;
265
266 final String[] expected = {
267 "6: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
268 "14: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
269 "22: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
270 "34: " + getWarningMessage("oveRRRRRrriddenMethod", expectedCapitalCount),
271 };
272
273 verify(checkConfig,
274 getPath("InputAbbreviationAsWordInNameOverridableMethod.java"), expected);
275 }
276
277 @Test
278 public void testTypeNamesForZeroPermittedCapitalLetter() throws Exception {
279 final DefaultConfiguration checkConfig =
280 createModuleConfig(AbbreviationAsWordInNameCheck.class);
281 checkConfig.addAttribute("allowedAbbreviationLength",
282 "0");
283 checkConfig.addAttribute("allowedAbbreviations", "");
284 checkConfig.addAttribute("ignoreStatic", "false");
285 checkConfig.addAttribute("ignoreFinal", "false");
286 checkConfig.addAttribute("ignoreOverriddenMethods", "false");
287 checkConfig.addAttribute("tokens", "CLASS_DEF,INTERFACE_DEF,ENUM_DEF,"
288 + "ANNOTATION_DEF,ANNOTATION_FIELD_DEF,ENUM_CONSTANT_DEF,"
289 + "PARAMETER_DEF,VARIABLE_DEF,METHOD_DEF");
290 final int expectedCapitalCount = 1;
291 final String[] expected = {
292 "6: " + getWarningMessage("NonAAAAbstractClassName", expectedCapitalCount),
293 "9: " + getWarningMessage("FactoryWithBADNAme", expectedCapitalCount),
294 "12: " + getWarningMessage("AbstractCLASSName", expectedCapitalCount),
295 "32: " + getWarningMessage("AbstractINNERRClass", expectedCapitalCount),
296 "37: " + getWarningMessage("WellNamedFACTORY", expectedCapitalCount),
297 "38: " + getWarningMessage("marazmaticMETHODName", expectedCapitalCount),
298 "39: " + getWarningMessage("marazmaticVARIABLEName", expectedCapitalCount),
299 "40: " + getWarningMessage("MARAZMATICVariableName", expectedCapitalCount),
300 "46: " + getWarningMessage("RIGHT", expectedCapitalCount),
301 "47: " + getWarningMessage("LEFT", expectedCapitalCount),
302 "48: " + getWarningMessage("UP", expectedCapitalCount),
303 "49: " + getWarningMessage("DOWN", expectedCapitalCount),
304 "57: " + getWarningMessage("NonAAAAbstractClassName2", expectedCapitalCount),
305 "58: " + getWarningMessage("serialNUMBER", expectedCapitalCount),
306 "59: " + getWarningMessage("s1erialNUMBER", expectedCapitalCount),
307 "60: " + getWarningMessage("s2erialNUMBER", expectedCapitalCount),
308 "61: " + getWarningMessage("s3erialNUMBER", expectedCapitalCount),
309 "66: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
310 "72: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
311 "78: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
312 "84: " + getWarningMessage("VALUEEEE", expectedCapitalCount),
313 "88: " + getWarningMessage("FIleNameFormatException", expectedCapitalCount),
314 "90: " + getWarningMessage("serialVersionUID", expectedCapitalCount),
315 "98: " + getWarningMessage("userID", expectedCapitalCount),
316 "107: " + getWarningMessage("VALUE", expectedCapitalCount),
317 "111: " + getWarningMessage("VALUE", expectedCapitalCount),
318 "115: " + getWarningMessage("VALUE", expectedCapitalCount),
319 "119: " + getWarningMessage("VALUE", expectedCapitalCount),
320 };
321 verify(checkConfig,
322 getPath("InputAbbreviationAsWordInNameType.java"), expected);
323 }
324
325 @Test
326 public void testNullPointerException() throws Exception {
327 final DefaultConfiguration checkConfig =
328 createModuleConfig(AbbreviationAsWordInNameCheck.class);
329 checkConfig.addAttribute("allowedAbbreviationLength", "2");
330 checkConfig.addAttribute("ignoreFinal", "false");
331 checkConfig.addAttribute("allowedAbbreviations", null);
332
333 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
334
335 verify(checkConfig,
336 getPath("InputAbbreviationAsWordInNameAbstractMultisetSetCount.java"),
337 expected);
338 }
339
340 private String getWarningMessage(String typeName, int expectedCapitalCount) {
341 return getCheckMessage(MSG_KEY, typeName, expectedCapitalCount);
342 }
343
344 @Test
345 public void testReceiver() throws Exception {
346 final DefaultConfiguration checkConfig =
347 createModuleConfig(AbbreviationAsWordInNameCheck.class);
348 final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
349
350 verify(checkConfig, getPath("InputAbbreviationAsWordInNameReceiver.java"),
351 expected);
352 }
353
354 }