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.sizes.LambdaBodyLengthCheck;
30
31 public class XpathRegressionLambdaBodyLengthTest
32 extends AbstractXpathTestSupport {
33
34 private static final Class<LambdaBodyLengthCheck> CLASS =
35 LambdaBodyLengthCheck.class;
36
37 @Override
38 protected String getCheckName() {
39 return CLASS.getSimpleName();
40 }
41
42 @Test
43 public void testDefaultMax() throws Exception {
44 final File fileToProcess = new File(getPath(
45 "InputXpathLambdaBodyLengthDefaultMax.java"));
46 final DefaultConfiguration moduleConfig = createModuleConfig(CLASS);
47 final String[] expectedViolation = {
48 "7:48: " + getCheckMessage(CLASS, LambdaBodyLengthCheck.MSG_KEY, 11, 10),
49 };
50
51 final List<String> expectedXpathQueries = Collections.singletonList(
52 "/COMPILATION_UNIT/CLASS_DEF"
53 + "[./IDENT[@text='InputXpathLambdaBodyLengthDefaultMax']]"
54 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]/SLIST"
55 + "/VARIABLE_DEF[./IDENT[@text='trimmer']]/ASSIGN/LAMBDA");
56
57 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
58 }
59
60 @Test
61 public void testCustomMax() throws Exception {
62 final File fileToProcess = new File(getPath(
63 "InputXpathLambdaBodyLengthCustomMax.java"));
64 final DefaultConfiguration moduleConfig = createModuleConfig(CLASS);
65 moduleConfig.addProperty("max", "5");
66 final String[] expectedViolation = {
67 "7:25: " + getCheckMessage(CLASS, LambdaBodyLengthCheck.MSG_KEY, 6, 5),
68 };
69
70 final List<String> expectedXpathQueries = Collections.singletonList(
71 "/COMPILATION_UNIT/CLASS_DEF"
72 + "[./IDENT[@text='InputXpathLambdaBodyLengthCustomMax']]"
73 + "/OBJBLOCK/METHOD_DEF[./IDENT[@text='test']]/SLIST"
74 + "/VARIABLE_DEF[./IDENT[@text='r']]/ASSIGN/LAMBDA");
75
76 runVerifications(moduleConfig, fileToProcess, expectedViolation, expectedXpathQueries);
77 }
78 }