1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.pmd;
20
21 import java.io.File;
22
23
24
25
26
27 public class CpdViolationCheckMojoTest extends AbstractPmdReportTestCase {
28
29 public void testDefaultConfiguration() throws Exception {
30 generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
31
32
33 CapturingPrintStream.init(true);
34
35 try {
36 File testPom = new File(
37 getBasedir(),
38 "src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml");
39 final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
40 cpdViolationMojo.execute();
41
42 fail("MojoFailureException should be thrown.");
43 } catch (final Exception e) {
44
45 String output = CapturingPrintStream.getOutput();
46 assertTrue(output.contains("PMD version: " + AbstractPmdReport.getPmdVersion()));
47
48 assertTrue(e.getMessage().startsWith("You have 1 CPD duplication."));
49 }
50 }
51
52 public void testNotFailOnViolation() throws Exception {
53
54 generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
55
56 File testPom = new File(
57 getBasedir(),
58 "src/test/resources/unit/default-configuration/cpd-check-notfailonviolation-plugin-config.xml");
59 final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
60 cpdViolationMojo.execute();
61
62 assertTrue(true);
63 }
64
65 public void testException() throws Exception {
66 try {
67 final File testPom = new File(
68 getBasedir(),
69 "src/test/resources/unit/custom-configuration/pmd-check-exception-test-plugin-config.xml");
70 final CpdViolationCheckMojo mojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
71 mojo.execute();
72
73 fail("MojoFailureException should be thrown.");
74 } catch (final Exception e) {
75 assertTrue(true);
76 }
77 }
78
79 public void testExclusionsConfiguration() throws Exception {
80 generateReport("cpd", "default-configuration/cpd-default-configuration-plugin-config.xml");
81
82 File testPom = new File(
83 getBasedir(),
84 "src/test/resources/unit/default-configuration/cpd-check-cpd-exclusions-configuration-plugin-config.xml");
85 final CpdViolationCheckMojo cpdViolationMojo = (CpdViolationCheckMojo) lookupMojo("cpd-check", testPom);
86
87
88 cpdViolationMojo.execute();
89 }
90 }