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.EqualsAvoidNullCheck;
30
31 public class XpathRegressionEqualsAvoidNullTest extends AbstractXpathTestSupport {
32
33 private static final Class<EqualsAvoidNullCheck> CLAZZ = EqualsAvoidNullCheck.class;
34
35 @Override
36 protected String getCheckName() {
37 return CLAZZ.getSimpleName();
38 }
39
40 @Test
41 public void testEquals() throws Exception {
42 final File fileToProcess = new File(
43 getPath("InputXpathEqualsAvoidNull.java"));
44
45 final DefaultConfiguration moduleConfig = createModuleConfig(CLAZZ);
46
47 final String[] expectedViolation = {
48 "6:26: " + getCheckMessage(CLAZZ,
49 EqualsAvoidNullCheck.MSG_EQUALS_AVOID_NULL),
50 };
51
52 final List<String> expectedXpathQueries = Arrays.asList(
53 "/COMPILATION_UNIT/CLASS_DEF[./IDENT"
54 + "[@text='InputXpathEqualsAvoidNull']]"
55 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]/SLIST/EXPR",
56 "/COMPILATION_UNIT/CLASS_DEF[./IDENT"
57 + "[@text='InputXpathEqualsAvoidNull']]"
58 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]/SLIST/EXPR/METHOD_CALL");
59
60 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
61 }
62
63 @Test
64 public void testEqualsIgnoreCase() throws Exception {
65 final File fileToProcess = new File(
66 getPath("InputXpathEqualsAvoidNullIgnoreCase.java"));
67
68 final DefaultConfiguration moduleConfig = createModuleConfig(CLAZZ);
69
70 final String[] expectedViolation = {
71 "6:36: " + getCheckMessage(CLAZZ,
72 EqualsAvoidNullCheck.MSG_EQUALS_IGNORE_CASE_AVOID_NULL),
73 };
74
75 final List<String> expectedXpathQueries = Arrays.asList(
76 "/COMPILATION_UNIT/CLASS_DEF[./IDENT"
77 + "[@text='InputXpathEqualsAvoidNullIgnoreCase']]"
78 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]/SLIST/EXPR",
79 "/COMPILATION_UNIT/CLASS_DEF[./IDENT"
80 + "[@text='InputXpathEqualsAvoidNullIgnoreCase']]"
81 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]/SLIST/EXPR/METHOD_CALL");
82
83 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
84 }
85 }