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.Collections;
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.AvoidNoArgumentSuperConstructorCallCheck;
30
31 public class XpathRegressionAvoidNoArgumentSuperConstructorCallTest
32 extends AbstractXpathTestSupport {
33
34 private static final Class<AvoidNoArgumentSuperConstructorCallCheck> CLASS =
35 AvoidNoArgumentSuperConstructorCallCheck.class;
36
37 @Override
38 protected String getCheckName() {
39 return CLASS.getSimpleName();
40 }
41
42 @Test
43 public void testDefault() throws Exception {
44 final File fileToProcess = new File(getPath(
45 "InputXpathAvoidNoArgumentSuperConstructorCallDefault.java"));
46
47 final DefaultConfiguration moduleConfig =
48 createModuleConfig(CLASS);
49
50 final String[] expectedViolation = {
51 "5:9: " + getCheckMessage(CLASS,
52 AvoidNoArgumentSuperConstructorCallCheck.MSG_CTOR),
53 };
54
55 final List<String> expectedXpathQueries = Collections.singletonList(
56 "/COMPILATION_UNIT/CLASS_DEF[./IDENT"
57 + "[@text='InputXpathAvoidNoArgumentSuperConstructorCallDefault']]"
58 + "/OBJBLOCK/CTOR_DEF[./IDENT["
59 + "@text='InputXpathAvoidNoArgumentSuperConstructorCallDefault']]"
60 + "/SLIST/SUPER_CTOR_CALL"
61 );
62
63 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
64 }
65
66 @Test
67 public void testInnerClass() throws Exception {
68 final File fileToProcess = new File(getPath(
69 "InputXpathAvoidNoArgumentSuperConstructorCallInnerClass.java"
70 ));
71
72 final DefaultConfiguration moduleConfig =
73 createModuleConfig(CLASS);
74
75 final String[] expectedViolation = {
76 "7:17: " + getCheckMessage(CLASS,
77 AvoidNoArgumentSuperConstructorCallCheck.MSG_CTOR),
78 };
79
80 final List<String> expectedXpathQueries = Collections.singletonList(
81 "/COMPILATION_UNIT/CLASS_DEF[./IDENT[@text="
82 + "'InputXpathAvoidNoArgumentSuperConstructorCallInnerClass']]"
83 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]"
84 + "/SLIST/CLASS_DEF[./IDENT[@text='Inner']]"
85 + "/OBJBLOCK/CTOR_DEF[./IDENT[@text='Inner']]"
86 + "/SLIST/SUPER_CTOR_CALL"
87 );
88
89 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
90 }
91 }