1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.checkstyle.suppressionxpathfilter;
21
22 import java.io.File;
23 import java.util.Arrays;
24 import java.util.List;
25
26 import org.junit.jupiter.api.Test;
27
28 import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
29 import com.puppycrawl.tools.checkstyle.checks.coding.AvoidDoubleBraceInitializationCheck;
30
31 public class XpathRegressionAvoidDoubleBraceInitializationTest extends AbstractXpathTestSupport {
32
33 private static final Class<AvoidDoubleBraceInitializationCheck> CLAZZ =
34 AvoidDoubleBraceInitializationCheck.class;
35
36 @Override
37 protected String getCheckName() {
38 return CLAZZ.getSimpleName();
39 }
40
41 @Test
42 public void testClassFields() throws Exception {
43 final File fileToProcess = new File(
44 getPath("InputXpathAvoidDoubleBraceInitializationClassFields.java"));
45
46 final DefaultConfiguration moduleConfig = createModuleConfig(CLAZZ);
47
48 final String[] expectedViolation = {
49 "6:41: " + getCheckMessage(CLAZZ, AvoidDoubleBraceInitializationCheck.MSG_KEY),
50 };
51
52 final List<String> expectedXpathQueries = Arrays.asList(
53 "/COMPILATION_UNIT/CLASS_DEF"
54 + "[./IDENT[@text='InputXpathAvoidDoubleBraceInitializationClassFields']]"
55 + "/OBJBLOCK/VARIABLE_DEF[./IDENT[@text='list']]/ASSIGN/EXPR/"
56 + "LITERAL_NEW[./IDENT[@text='ArrayList']]/OBJBLOCK",
57 "/COMPILATION_UNIT/CLASS_DEF"
58 + "[./IDENT[@text='InputXpathAvoidDoubleBraceInitializationClassFields']]"
59 + "/OBJBLOCK/VARIABLE_DEF[./IDENT[@text='list']]/ASSIGN/EXPR/"
60 + "LITERAL_NEW[./IDENT[@text='ArrayList']]/OBJBLOCK/LCURLY"
61 );
62
63 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
64 }
65
66 @Test
67 public void testMethodDef() throws Exception {
68 final File fileToProcess = new File(
69 getPath("InputXpathAvoidDoubleBraceInitializationMethodDef.java"));
70
71 final DefaultConfiguration moduleConfig = createModuleConfig(CLAZZ);
72
73 final String[] expectedViolation = {
74 "7:31: " + getCheckMessage(CLAZZ, AvoidDoubleBraceInitializationCheck.MSG_KEY),
75 };
76
77 final List<String> expectedXpathQueries = Arrays.asList(
78 "/COMPILATION_UNIT/CLASS_DEF[./IDENT[@text="
79 + "'InputXpathAvoidDoubleBraceInitializationMethodDef']]"
80 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]"
81 + "/SLIST/EXPR/LITERAL_NEW[./IDENT[@text='HashSet']]"
82 + "/OBJBLOCK",
83 "/COMPILATION_UNIT/CLASS_DEF[./IDENT[@text="
84 + "'InputXpathAvoidDoubleBraceInitializationMethodDef']]"
85 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]"
86 + "/SLIST/EXPR/LITERAL_NEW[./IDENT[@text='HashSet']]"
87 + "/OBJBLOCK/LCURLY"
88 );
89
90 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
91 }
92
93 }