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.javadoc.JavadocVariableCheck;
30
31 public class XpathRegressionJavadocVariableTest extends AbstractXpathTestSupport {
32
33 private final String checkName = JavadocVariableCheck.class.getSimpleName();
34
35 @Override
36 protected String getCheckName() {
37 return checkName;
38 }
39
40 @Test
41 public void testPrivateClassFields() throws Exception {
42 final File fileToProcess =
43 new File(getPath("InputXpathJavadocVariablePrivateClassFields.java"));
44
45 final DefaultConfiguration moduleConfig =
46 createModuleConfig(JavadocVariableCheck.class);
47
48 final String[] expectedViolation = {
49 "5:5: " + getCheckMessage(JavadocVariableCheck.class,
50 JavadocVariableCheck.MSG_JAVADOC_MISSING),
51 };
52
53 final List<String> expectedXpathQueries = Arrays.asList(
54 "/COMPILATION_UNIT/CLASS_DEF"
55 + "[./IDENT[@text='InputXpathJavadocVariablePrivateClassFields']]/OBJBLOCK"
56 + "/VARIABLE_DEF[./IDENT[@text='age']]",
57 "/COMPILATION_UNIT/CLASS_DEF"
58 + "[./IDENT[@text='InputXpathJavadocVariablePrivateClassFields']]/OBJBLOCK"
59 + "/VARIABLE_DEF[./IDENT[@text='age']]/MODIFIERS",
60 "/COMPILATION_UNIT/CLASS_DEF"
61 + "[./IDENT[@text='InputXpathJavadocVariablePrivateClassFields']]/OBJBLOCK"
62 + "/VARIABLE_DEF[./IDENT[@text='age']]/MODIFIERS/LITERAL_PRIVATE"
63 );
64
65 runVerifications(moduleConfig, fileToProcess, expectedViolation,
66 expectedXpathQueries);
67 }
68
69 @Test
70 public void testInnerClassFields() throws Exception {
71 final File fileToProcess =
72 new File(getPath("InputXpathJavadocVariableInnerClassFields.java"));
73
74 final DefaultConfiguration moduleConfig =
75 createModuleConfig(JavadocVariableCheck.class);
76
77 final String[] expectedViolation = {
78 "6:9: " + getCheckMessage(JavadocVariableCheck.class,
79 JavadocVariableCheck.MSG_JAVADOC_MISSING),
80 };
81
82 final List<String> expectedXpathQueries = Arrays.asList(
83 "/COMPILATION_UNIT/CLASS_DEF"
84 + "[./IDENT[@text='InputXpathJavadocVariableInnerClassFields']]/OBJBLOCK"
85 + "/CLASS_DEF[./IDENT[@text='InnerInner2']]/OBJBLOCK"
86 + "/VARIABLE_DEF[./IDENT[@text='fData']]",
87 "/COMPILATION_UNIT/CLASS_DEF"
88 + "[./IDENT[@text='InputXpathJavadocVariableInnerClassFields']]/OBJBLOCK"
89 + "/CLASS_DEF[./IDENT[@text='InnerInner2']]/OBJBLOCK"
90 + "/VARIABLE_DEF[./IDENT[@text='fData']]/MODIFIERS",
91 "/COMPILATION_UNIT/CLASS_DEF"
92 + "[./IDENT[@text='InputXpathJavadocVariableInnerClassFields']]/OBJBLOCK"
93 + "/CLASS_DEF[./IDENT[@text='InnerInner2']]/OBJBLOCK"
94 + "/VARIABLE_DEF[./IDENT[@text='fData']]/MODIFIERS"
95 + "/LITERAL_PUBLIC"
96 );
97
98 runVerifications(moduleConfig, fileToProcess, expectedViolation,
99 expectedXpathQueries);
100 }
101 }