1 package test.net.sourceforge.pmd;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNull;
5 import junit.framework.JUnit4TestAdapter;
6 import net.sourceforge.pmd.MockRule;
7 import net.sourceforge.pmd.RuleReference;
8 import net.sourceforge.pmd.RuleSetReference;
9
10 import org.junit.Test;
11
12 public class RuleReferenceTest {
13
14 @Test
15 public void testRuleSetReference() {
16 RuleReference ruleReference = new RuleReference();
17 RuleSetReference ruleSetReference = new RuleSetReference();
18 ruleReference.setRuleSetReference(ruleSetReference);
19 assertEquals("Not same rule set reference", ruleSetReference, ruleReference.getRuleSetReference());
20 }
21
22 @Test
23 public void testOverride() {
24 MockRule rule = new MockRule();
25 rule.setName("name1");
26 rule.addProperty("property1", "value1");
27 rule.setMessage("message1");
28 rule.setDescription("description1");
29 rule.addExample("example1");
30 rule.setExternalInfoUrl("externalInfoUrl1");
31 rule.setPriority(1);
32
33 RuleReference ruleReference = new RuleReference();
34 ruleReference.setRule(rule);
35 ruleReference.setName("name2");
36 ruleReference.addProperty("property1", "value2");
37 ruleReference.setMessage("message2");
38 ruleReference.setDescription("description2");
39 ruleReference.addExample("example2");
40 ruleReference.setExternalInfoUrl("externalInfoUrl2");
41 ruleReference.setPriority(2);
42
43 assertEquals("Override failed", "name2", ruleReference.getName());
44 assertEquals("Override failed", "name2", ruleReference.getOverriddenName());
45
46 assertEquals("Override failed", "value2", ruleReference.getProperties().getProperty("property1"));
47 assertEquals("Override failed", "value2", ruleReference.getOverriddenProperties().getProperty("property1"));
48
49 assertEquals("Override failed", "message2", ruleReference.getMessage());
50 assertEquals("Override failed", "message2", ruleReference.getOverriddenMessage());
51
52 assertEquals("Override failed", "description2", ruleReference.getDescription());
53 assertEquals("Override failed", "description2", ruleReference.getOverriddenDescription());
54
55
56 assertEquals("Override failed", "example2", ruleReference.getExample());
57 assertEquals("Override failed", 2, ruleReference.getExamples().size());
58 assertEquals("Override failed", "example1", ruleReference.getExamples().get(0));
59 assertEquals("Override failed", "example2", ruleReference.getExamples().get(1));
60 assertEquals("Override failed", "example2", ruleReference.getOverriddenExamples().get(0));
61
62 assertEquals("Override failed", "externalInfoUrl2", ruleReference.getExternalInfoUrl());
63 assertEquals("Override failed", "externalInfoUrl2", ruleReference.getOverriddenExternalInfoUrl());
64
65 assertEquals("Override failed", 2, ruleReference.getPriority());
66 assertEquals("Override failed", (Integer)2, ruleReference.getOverriddenPriority());
67 }
68
69 @Test
70 public void testNotOverride() {
71 MockRule rule = new MockRule();
72 rule.setName("name1");
73 rule.addProperty("property1", "value1");
74 rule.setMessage("message1");
75 rule.setDescription("description1");
76 rule.addExample("example1");
77 rule.setExternalInfoUrl("externalInfoUrl1");
78 rule.setPriority(1);
79
80 RuleReference ruleReference = new RuleReference();
81 ruleReference.setRule(rule);
82 ruleReference.setName("name1");
83 ruleReference.addProperty("property1", "value1");
84 ruleReference.setMessage("message1");
85 ruleReference.setDescription("description1");
86 ruleReference.addExample("example1");
87 ruleReference.setExternalInfoUrl("externalInfoUrl1");
88 ruleReference.setPriority(1);
89
90 assertEquals("Override failed", "name1", ruleReference.getName());
91 assertNull("Override failed", ruleReference.getOverriddenName());
92
93 assertEquals("Override failed", "value1", ruleReference.getProperties().getProperty("property1"));
94 assertNull("Override failed", ruleReference.getOverriddenProperties());
95
96 assertEquals("Override failed", "message1", ruleReference.getMessage());
97 assertNull("Override failed", ruleReference.getOverriddenMessage());
98
99 assertEquals("Override failed", "description1", ruleReference.getDescription());
100 assertNull("Override failed", ruleReference.getOverriddenDescription());
101
102 assertEquals("Override failed", "example1", ruleReference.getExample());
103 assertEquals("Override failed", 1, ruleReference.getExamples().size());
104 assertEquals("Override failed", "example1", ruleReference.getExamples().get(0));
105 assertNull("Override failed", ruleReference.getOverriddenExamples());
106
107 assertEquals("Override failed", "externalInfoUrl1", ruleReference.getExternalInfoUrl());
108 assertNull("Override failed", ruleReference.getOverriddenExternalInfoUrl());
109
110 assertEquals("Override failed", 1, ruleReference.getPriority());
111 assertNull("Override failed", ruleReference.getOverriddenPriority());
112 }
113
114 public static junit.framework.Test suite() {
115 return new JUnit4TestAdapter(RuleReferenceTest.class);
116 }
117 }