1
2
3
4 package net.sourceforge.pmd;
5
6 import java.io.ByteArrayOutputStream;
7
8 import net.sourceforge.pmd.lang.rule.RuleReference;
9
10 import org.junit.After;
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Test;
14
15
16
17
18
19 public class RuleSetWriterTest {
20
21 private ByteArrayOutputStream out;
22 private RuleSetWriter writer;
23
24
25
26
27 @Before
28 public void setupOutputStream() {
29 out = new ByteArrayOutputStream();
30 writer = new RuleSetWriter(out);
31 }
32
33
34
35
36 @After
37 public void cleanupStream() {
38 if (writer != null) {
39 writer.close();
40 }
41 }
42
43
44
45
46
47 @Test
48 public void testWrite() throws Exception {
49 RuleSet ruleSet = new RuleSet();
50 RuleSet braces = new RuleSetFactory().createRuleSet("net/sourceforge/pmd/TestRuleset1.xml");
51 ruleSet.addRuleSetByReference(braces, true, "MockRule2");
52
53 writer.write(ruleSet);
54
55 String written = out.toString("UTF-8");
56 Assert.assertTrue(written.contains("<exclude name=\"MockRule2\""));
57 }
58
59
60
61
62
63
64 @Test
65 public void testRuleReferenceOverriddenName() throws Exception {
66 RuleSetFactory ruleSetFactory = new RuleSetFactory();
67 RuleSet rs = ruleSetFactory.createRuleSet("dummy-basic");
68 RuleSetReference ruleSetReference = new RuleSetReference("rulesets/dummy/basic.xml");
69
70 RuleReference ruleRef = new RuleReference();
71 ruleRef.setRule(rs.getRuleByName("DummyBasicMockRule"));
72 ruleRef.setRuleSetReference(ruleSetReference);
73 ruleRef.setName("Foo");
74
75 RuleSet ruleSet = new RuleSet();
76 ruleSet.addRule(ruleRef);
77
78 writer.write(ruleSet);
79
80 String written = out.toString("UTF-8");
81 Assert.assertTrue(written.contains("ref=\"rulesets/dummy/basic.xml/DummyBasicMockRule\""));
82 }
83 }