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.EmptyCatchBlockCheck;
30
31 public class XpathRegressionEmptyCatchBlockTest extends AbstractXpathTestSupport {
32
33 private static final Class<EmptyCatchBlockCheck> CLAZZ =
34 EmptyCatchBlockCheck.class;
35
36 @Override
37 protected String getCheckName() {
38 return CLAZZ.getSimpleName();
39 }
40
41 @Test
42 public void testOne() throws Exception {
43 final File fileToProcess = new File(
44 getPath("InputXpathEmptyCatchBlockOne.java"));
45
46 final DefaultConfiguration moduleConfig = createModuleConfig(CLAZZ);
47
48 final String[] expectedViolation = {
49 "8:38: " + getCheckMessage(CLAZZ, EmptyCatchBlockCheck.MSG_KEY_CATCH_BLOCK_EMPTY),
50 };
51
52 final List<String> expectedXpathQueries = Collections.singletonList(
53 "/COMPILATION_UNIT/CLASS_DEF"
54 + "[./IDENT[@text='InputXpathEmptyCatchBlockOne']]"
55 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='main']]"
56 + "/SLIST/LITERAL_TRY/LITERAL_CATCH/SLIST"
57 );
58
59 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
60 }
61
62 @Test
63 public void testTwo() throws Exception {
64 final File fileToProcess = new File(
65 getPath("InputXpathEmptyCatchBlockTwo.java"));
66
67 final DefaultConfiguration moduleConfig = createModuleConfig(CLAZZ);
68
69 final String[] expectedViolation = {
70 "8:47: " + getCheckMessage(CLAZZ, EmptyCatchBlockCheck.MSG_KEY_CATCH_BLOCK_EMPTY),
71 };
72
73 final List<String> expectedXpathQueries = Collections.singletonList(
74 "/COMPILATION_UNIT/CLASS_DEF"
75 + "[./IDENT[@text='InputXpathEmptyCatchBlockTwo']]"
76 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='main']]"
77 + "/SLIST/LITERAL_TRY/LITERAL_CATCH/SLIST"
78 );
79
80 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
81 }
82
83 }