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 static com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck.MSG_KEY;
23
24 import java.io.File;
25 import java.util.Collections;
26 import java.util.List;
27
28 import org.junit.jupiter.api.Test;
29
30 import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
31 import com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck;
32
33 public class XpathRegressionTodoCommentTest extends AbstractXpathTestSupport {
34 private final String checkName = TodoCommentCheck.class.getSimpleName();
35
36 @Override
37 protected String getCheckName() {
38 return checkName;
39 }
40
41 @Test
42 public void testSingleLine() throws Exception {
43 final File fileToProcess =
44 new File(getPath("InputXpathTodoCommentSingleLine.java"));
45
46 final DefaultConfiguration moduleConfig =
47 createModuleConfig(TodoCommentCheck.class);
48 moduleConfig.addProperty("format", "FIXME:");
49
50 final String[] expectedViolation = {
51 "4:7: " + getCheckMessage(TodoCommentCheck.class, MSG_KEY, "FIXME:"),
52 };
53
54 final List<String> expectedXpathQueries = Collections.singletonList(
55 "/COMPILATION_UNIT/CLASS_DEF[./IDENT[@text="
56 + "'InputXpathTodoCommentSingleLine']]/OBJBLOCK/"
57 + "SINGLE_LINE_COMMENT/COMMENT_CONTENT[@text=' warn FIXME:\\n']");
58
59 runVerifications(moduleConfig, fileToProcess, expectedViolation,
60 expectedXpathQueries);
61 }
62
63 @Test
64 public void testBlock() throws Exception {
65 final File fileToProcess =
66 new File(getPath("InputXpathTodoCommentBlock.java"));
67
68 final DefaultConfiguration moduleConfig =
69 createModuleConfig(TodoCommentCheck.class);
70 moduleConfig.addProperty("format", "FIXME:");
71
72 final String[] expectedViolation = {
73 "4:7: " + getCheckMessage(TodoCommentCheck.class, MSG_KEY, "FIXME:"),
74 };
75
76 final List<String> expectedXpathQueries = Collections.singletonList(
77 "/COMPILATION_UNIT/CLASS_DEF[./IDENT[@text="
78 + "'InputXpathTodoCommentBlock']]/"
79 + "OBJBLOCK/BLOCK_COMMENT_BEGIN/COMMENT_CONTENT"
80 + "[@text=' // warn\\n * FIXME:\\n * TODO\\n ']"
81 );
82
83 runVerifications(moduleConfig, fileToProcess, expectedViolation,
84 expectedXpathQueries);
85 }
86 }