1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.digester3;
20
21 import static org.junit.Assert.assertEquals;
22 import static org.junit.Assert.assertNotNull;
23
24 import java.util.List;
25
26 import org.apache.commons.digester3.Rule;
27 import org.apache.commons.digester3.RulesBase;
28 import org.apache.commons.digester3.WithDefaultsRulesWrapper;
29 import org.junit.Test;
30
31
32
33
34
35
36 public class WithDefaultsRulesWrapperTestCase
37 {
38
39 @Test
40 public void testClear()
41 {
42
43 WithDefaultsRulesWrapper rules = new WithDefaultsRulesWrapper( new RulesBase() );
44 rules.add( "alpha", new TestRule( "Tom" ) );
45 rules.add( "alpha", new TestRule( "Dick" ) );
46 rules.add( "alpha", new TestRule( "Harry" ) );
47
48 assertNotNull( "Rules should not be null", rules.rules() );
49 assertEquals( "Wrong number of rules registered (1)", 3, rules.rules().size() );
50 rules.clear();
51 assertEquals( "Clear Failed (1)", 0, rules.rules().size() );
52
53
54 rules.add( "alpha", new TestRule( "Tom" ) );
55 rules.add( "alpha", new TestRule( "Dick" ) );
56 rules.add( "alpha", new TestRule( "Harry" ) );
57 rules.addDefault( new TestRule( "Roger" ) );
58 assertEquals( "Wrong number of rules registered (2)", 4, rules.rules().size() );
59 rules.clear();
60 assertEquals( "Clear Failed (2)", 0, rules.rules().size() );
61
62 rules.addDefault( new TestRule( "Roger" ) );
63 assertEquals( "Wrong number of rules registered (3)", 1, rules.rules().size() );
64 rules.clear();
65 assertEquals( "Clear Failed (3)", 0, rules.rules().size() );
66 }
67
68 @Test
69 public void testRules()
70 {
71
72 WithDefaultsRulesWrapper rules = new WithDefaultsRulesWrapper( new RulesBase() );
73 rules.add( "alpha", new TestRule( "Tom" ) );
74 rules.add( "alpha", new TestRule( "Dick" ) );
75 rules.addDefault( new TestRule( "Roger" ) );
76 rules.add( "alpha", new TestRule( "Harry" ) );
77
78 assertNotNull( "Rules should not be null", rules.rules() );
79 assertEquals( "Wrong order (1)", "Tom", ( (TestRule) rules.rules().get( 0 ) ).getIdentifier() );
80 assertEquals( "Wrong order (2)", "Dick", ( (TestRule) rules.rules().get( 1 ) ).getIdentifier() );
81 assertEquals( "Wrong order (3)", "Roger", ( (TestRule) rules.rules().get( 2 ) ).getIdentifier() );
82 assertEquals( "Wrong order (4)", "Harry", ( (TestRule) rules.rules().get( 3 ) ).getIdentifier() );
83 }
84
85 @Test
86 public void testMatch()
87 {
88
89 WithDefaultsRulesWrapper rules = new WithDefaultsRulesWrapper( new RulesBase() );
90 rules.add( "alpha", new TestRule( "Tom" ) );
91 rules.add( "alpha", new TestRule( "Dick" ) );
92 rules.add( "alpha", new TestRule( "Harry" ) );
93 rules.addDefault( new TestRule( "Roger" ) );
94 rules.addDefault( new TestRule( "Rabbit" ) );
95
96 List<Rule> matches = rules.match( "", "alpha", null, null );
97 assertEquals( "Wrong size (1)", 3, matches.size() );
98 assertEquals( "Wrong order (1)", "Tom", ( (TestRule) matches.get( 0 ) ).getIdentifier() );
99 assertEquals( "Wrong order (2)", "Dick", ( (TestRule) matches.get( 1 ) ).getIdentifier() );
100 assertEquals( "Wrong order (3)", "Harry", ( (TestRule) matches.get( 2 ) ).getIdentifier() );
101
102 matches = rules.match( "", "not-alpha", null, null );
103 assertEquals( "Wrong size (2)", 2, matches.size() );
104 assertEquals( "Wrong order (4)", "Roger", ( (TestRule) matches.get( 0 ) ).getIdentifier() );
105 assertEquals( "Wrong order (5)", "Rabbit", ( (TestRule) matches.get( 1 ) ).getIdentifier() );
106 }
107 }