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.Collections;
25 import java.util.List;
26
27 import org.junit.jupiter.api.Test;
28
29 import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
30 import com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheck;
31
32 public class XpathRegressionImportControlTest extends AbstractXpathTestSupport {
33
34 private final String checkName = ImportControlCheck.class.getSimpleName();
35
36 @Override
37 protected String getCheckName() {
38 return checkName;
39 }
40
41 @Test
42 public void testOne() throws Exception {
43 final File fileToProcess =
44 new File(getPath("InputXpathImportControlOne.java"));
45
46 final DefaultConfiguration moduleConfig =
47 createModuleConfig(ImportControlCheck.class);
48 moduleConfig.addProperty("file", getPath(
49 "InputXpathImportControlOne.xml"));
50
51 final String[] expectedViolation = {
52 "3:1: " + getCheckMessage(ImportControlCheck.class,
53 ImportControlCheck.MSG_DISALLOWED, "java.util.Scanner"),
54 };
55
56 final List<String> expectedXpathQueries = Collections.singletonList(
57 "/COMPILATION_UNIT/IMPORT"
58 );
59
60 runVerifications(moduleConfig, fileToProcess, expectedViolation,
61 expectedXpathQueries);
62 }
63
64 @Test
65 public void testTwo() throws Exception {
66 final File fileToProcess =
67 new File(getPath("InputXpathImportControlTwo.java"));
68
69 final DefaultConfiguration moduleConfig =
70 createModuleConfig(ImportControlCheck.class);
71 moduleConfig.addProperty("file", getPath(
72 "InputXpathImportControlTwo.xml"));
73
74 final String[] expectedViolation = {
75 "1:1: " + getCheckMessage(ImportControlCheck.class,
76 ImportControlCheck.MSG_UNKNOWN_PKG),
77 };
78
79 final List<String> expectedXpathQueries = Arrays.asList(
80 "/COMPILATION_UNIT", "/COMPILATION_UNIT/PACKAGE_DEF"
81 );
82
83 runVerifications(moduleConfig, fileToProcess, expectedViolation,
84 expectedXpathQueries);
85 }
86
87 @Test
88 public void testThree() throws Exception {
89 final File fileToProcess =
90 new File(getPath("InputXpathImportControlThree.java"));
91
92 final DefaultConfiguration moduleConfig =
93 createModuleConfig(ImportControlCheck.class);
94
95 final String[] expectedViolation = {
96 "1:1: " + getCheckMessage(ImportControlCheck.class,
97 ImportControlCheck.MSG_MISSING_FILE),
98 };
99
100 final List<String> expectedXpathQueries = Arrays.asList(
101 "/COMPILATION_UNIT", "/COMPILATION_UNIT/PACKAGE_DEF"
102 );
103
104 runVerifications(moduleConfig, fileToProcess, expectedViolation,
105 expectedXpathQueries);
106 }
107
108 @Test
109 public void testFour() throws Exception {
110 final File fileToProcess =
111 new File(getPath("InputXpathImportControlFour.java"));
112
113 final DefaultConfiguration moduleConfig =
114 createModuleConfig(ImportControlCheck.class);
115 moduleConfig.addProperty("file",
116 getPath("InputXpathImportControlFour.xml"));
117
118 final String[] expectedViolation = {
119 "4:1: " + getCheckMessage(ImportControlCheck.class,
120 ImportControlCheck.MSG_DISALLOWED, "java.util.Scanner"),
121 };
122
123 final List<String> expectedXpathQueries = Collections.singletonList(
124 "/COMPILATION_UNIT/IMPORT[./DOT/IDENT[@text='Scanner']]"
125 );
126
127 runVerifications(moduleConfig, fileToProcess, expectedViolation,
128 expectedXpathQueries);
129 }
130 }