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.PackageDeclarationCheck;
30
31 public class XpathRegressionPackageDeclarationTest extends AbstractXpathTestSupport {
32
33 private final String checkName = PackageDeclarationCheck.class.getSimpleName();
34
35 @Override
36 protected String getCheckName() {
37 return checkName;
38 }
39
40 @Test
41 public void testWrongPackage() throws Exception {
42 final File fileToProcess =
43 new File(getNonCompilablePath("InputXpathWrongPackage.java"));
44
45 final DefaultConfiguration moduleConfig =
46 createModuleConfig(PackageDeclarationCheck.class);
47
48 final String[] expectedViolation = {
49 "2:1: " + getCheckMessage(PackageDeclarationCheck.class,
50 PackageDeclarationCheck.MSG_KEY_MISMATCH),
51 };
52
53 final List<String> expectedXpathQueries = Arrays.asList(
54 "/COMPILATION_UNIT", "/COMPILATION_UNIT/PACKAGE_DEF"
55 );
56
57 runVerifications(moduleConfig, fileToProcess, expectedViolation,
58 expectedXpathQueries);
59 }
60
61 @Test
62 public void testMissingPackage() throws Exception {
63 final File fileToProcess =
64 new File(getNonCompilablePath("InputXpathMissingPackage.java"));
65
66 final DefaultConfiguration moduleConfig =
67 createModuleConfig(PackageDeclarationCheck.class);
68
69 final String[] expectedViolation = {
70 "3:1: " + getCheckMessage(PackageDeclarationCheck.class,
71 PackageDeclarationCheck.MSG_KEY_MISSING),
72 };
73
74 final List<String> expectedXpathQueries = Arrays.asList(
75 "/COMPILATION_UNIT",
76 "/COMPILATION_UNIT/CLASS_DEF[./IDENT[@text='InputXpathMissingPackage']]",
77 "/COMPILATION_UNIT/CLASS_DEF"
78 + "[./IDENT[@text='InputXpathMissingPackage']]/MODIFIERS",
79 "/COMPILATION_UNIT/CLASS_DEF"
80 + "[./IDENT[@text='InputXpathMissingPackage']]/MODIFIERS/LITERAL_PUBLIC"
81 );
82
83 runVerifications(moduleConfig, fileToProcess, expectedViolation,
84 expectedXpathQueries);
85 }
86
87 }