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.UpperEllCheck;
30
31 public class XpathRegressionUpperEllTest extends AbstractXpathTestSupport {
32
33 private final String checkName = UpperEllCheck.class.getSimpleName();
34
35 @Override
36 protected String getCheckName() {
37 return checkName;
38 }
39
40 @Test
41 public void testUpperEllOne() throws Exception {
42 final File fileToProcess =
43 new File(getPath("InputXpathUpperEllOne.java"));
44
45 final DefaultConfiguration moduleConfig =
46 createModuleConfig(UpperEllCheck.class);
47
48 final String[] expectedViolation = {
49 "4:16: " + getCheckMessage(UpperEllCheck.class,
50 UpperEllCheck.MSG_KEY),
51 };
52
53 final List<String> expectedXpathQueries = Arrays.asList(
54 "/COMPILATION_UNIT/CLASS_DEF"
55 + "[./IDENT[@text='InputXpathUpperEllOne']]/OBJBLOCK"
56 + "/VARIABLE_DEF[./IDENT[@text='bad']]/ASSIGN/EXPR[./NUM_LONG[@text='0l']]",
57 "/COMPILATION_UNIT/CLASS_DEF"
58 + "[./IDENT[@text='InputXpathUpperEllOne']]/OBJBLOCK"
59 + "/VARIABLE_DEF[./IDENT[@text='bad']]/ASSIGN/EXPR"
60 + "/NUM_LONG[@text='0l']"
61 );
62
63 runVerifications(moduleConfig, fileToProcess, expectedViolation,
64 expectedXpathQueries);
65 }
66
67 @Test
68 public void testUpperEllTwo() throws Exception {
69 final File fileToProcess =
70 new File(getPath("InputXpathUpperEllTwo.java"));
71
72 final DefaultConfiguration moduleConfig =
73 createModuleConfig(UpperEllCheck.class);
74
75 final String[] expectedViolation = {
76 "6:21: " + getCheckMessage(UpperEllCheck.class,
77 UpperEllCheck.MSG_KEY),
78 };
79
80 final List<String> expectedXpathQueries = Arrays.asList(
81 "/COMPILATION_UNIT/INTERFACE_DEF"
82 + "[./IDENT[@text='InputXpathUpperEllTwo']]/OBJBLOCK/METHOD_DEF"
83 + "[./IDENT[@text='test']]/SLIST/VARIABLE_DEF[./IDENT[@text='var2']]/ASSIGN/EXPR"
84 + "[./NUM_LONG[@text='508987l']]",
85 "/COMPILATION_UNIT/INTERFACE_DEF"
86 + "[./IDENT[@text='InputXpathUpperEllTwo']]/OBJBLOCK/METHOD_DEF"
87 + "[./IDENT[@text='test']]/SLIST/VARIABLE_DEF[./IDENT[@text='var2']]/ASSIGN/EXPR"
88 + "/NUM_LONG[@text='508987l']"
89 );
90
91 runVerifications(moduleConfig, fileToProcess, expectedViolation,
92 expectedXpathQueries);
93 }
94 }