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