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.blocks.EmptyBlockCheck;
30
31 public class XpathRegressionEmptyBlockTest extends AbstractXpathTestSupport {
32 private final String checkName = EmptyBlockCheck.class.getSimpleName();
33
34 @Override
35 protected String getCheckName() {
36 return checkName;
37 }
38
39 @Test
40 public void testEmptyForLoopEmptyBlock() throws Exception {
41 final File fileToProcess =
42 new File(getPath("InputXpathEmptyBlockEmpty.java"));
43 final DefaultConfiguration moduleConfig =
44 createModuleConfig(EmptyBlockCheck.class);
45 moduleConfig.addProperty("option", "TEXT");
46 final String[] expectedViolation = {
47 "5:38: " + getCheckMessage(EmptyBlockCheck.class,
48 EmptyBlockCheck.MSG_KEY_BLOCK_EMPTY, "for"),
49 };
50 final List<String> expectedXpathQueries = Collections.singletonList(
51 "/COMPILATION_UNIT"
52 + "/CLASS_DEF[./IDENT[@text='InputXpathEmptyBlockEmpty']]"
53 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='emptyLoop']]"
54 + "/SLIST/LITERAL_FOR/SLIST"
55 );
56 runVerifications(moduleConfig, fileToProcess, expectedViolation,
57 expectedXpathQueries);
58 }
59
60 @Test
61 public void testEmptyForLoopEmptyStatement() throws Exception {
62 final File fileToProcess =
63 new File(getPath("InputXpathEmptyBlockEmpty.java"));
64 final DefaultConfiguration moduleConfig =
65 createModuleConfig(EmptyBlockCheck.class);
66 final String[] expectedViolation = {
67 "5:38: " + getCheckMessage(EmptyBlockCheck.class,
68 EmptyBlockCheck.MSG_KEY_BLOCK_NO_STATEMENT),
69 };
70 final List<String> expectedXpathQueries = Collections.singletonList(
71 "/COMPILATION_UNIT"
72 + "/CLASS_DEF[./IDENT[@text='InputXpathEmptyBlockEmpty']]"
73 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='emptyLoop']]"
74 + "/SLIST/LITERAL_FOR/SLIST"
75 );
76 runVerifications(moduleConfig, fileToProcess, expectedViolation,
77 expectedXpathQueries);
78 }
79
80 }