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.TrailingCommentCheck;
30
31 public class XpathRegressionTrailingCommentTest extends AbstractXpathTestSupport {
32 private final String checkName = TrailingCommentCheck.class.getSimpleName();
33
34 @Override
35 protected String getCheckName() {
36 return checkName;
37 }
38
39 @Test
40 public void testSingleLine() throws Exception {
41 final File fileToProcess = new File(getPath(
42 "InputXpathTrailingCommentSingleLine.java"));
43
44 final DefaultConfiguration moduleConfig =
45 createModuleConfig(TrailingCommentCheck.class);
46
47 final String[] expectedViolation = {
48 "4:12: " + getCheckMessage(TrailingCommentCheck.class,
49 TrailingCommentCheck.MSG_KEY),
50 };
51
52 final List<String> expectedXpathQueries = Collections.singletonList(
53 "/COMPILATION_UNIT/CLASS_DEF"
54 + "[./IDENT[@text='InputXpathTrailingCommentSingleLine']]/"
55 + "OBJBLOCK/SINGLE_LINE_COMMENT[./COMMENT_CONTENT[@text=' don'"
56 + "'t use trailing comments :) // warn\\n']]"
57 );
58
59 runVerifications(moduleConfig, fileToProcess, expectedViolation,
60 expectedXpathQueries);
61 }
62
63 @Test
64 public void testBlock() throws Exception {
65 final File fileToProcess = new File(getPath(
66 "InputXpathTrailingCommentBlock.java"));
67
68 final DefaultConfiguration moduleConfig =
69 createModuleConfig(TrailingCommentCheck.class);
70
71 final String[] expectedViolation = {
72 "4:40: " + getCheckMessage(TrailingCommentCheck.class,
73 TrailingCommentCheck.MSG_KEY),
74 };
75
76 final List<String> expectedXpathQueries = Collections.singletonList(
77 "/COMPILATION_UNIT/CLASS_DEF"
78 + "[./IDENT[@text='InputXpathTrailingCommentBlock']]"
79 + "/OBJBLOCK/SINGLE_LINE_COMMENT[./COMMENT_CONTENT[@text=' warn\\n']]"
80 );
81
82 runVerifications(moduleConfig, fileToProcess, expectedViolation,
83 expectedXpathQueries);
84 }
85 }