1 package org.codehaus.mojo.javancss;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23
24 import org.dom4j.Node;
25 import org.easymock.MockControl;
26
27
28
29
30
31
32 public class NumericNodeComparatorTest
33 extends TestCase
34 {
35 private static final String NODE_PROPERTY = "foobar";
36
37 private static final Integer SMALL_VALUE = new Integer( 10 );
38
39 private static final Integer BIG_VALUE = new Integer( 42 );
40
41 private MockControl control;
42
43 private Node bigNodeMock;
44
45 private Node smallNodeMock;
46
47 private NumericNodeComparator nnc;
48
49 public void setUp()
50 {
51 control = MockControl.createControl( Node.class );
52 nnc = new NumericNodeComparator( NODE_PROPERTY );
53 bigNodeMock = (Node) control.getMock();
54 smallNodeMock = (Node) control.getMock();
55 }
56
57 public void testComparePositive()
58 {
59 bigNodeMock.numberValueOf( NODE_PROPERTY );
60 control.setReturnValue( BIG_VALUE );
61 smallNodeMock.numberValueOf( NODE_PROPERTY );
62 control.setReturnValue( SMALL_VALUE );
63 control.replay();
64 assertTrue( nnc.compare( smallNodeMock, bigNodeMock ) > 0 );
65 control.verify();
66 }
67
68 public void testCompareNegative()
69 {
70 bigNodeMock.numberValueOf( NODE_PROPERTY );
71 control.setReturnValue( SMALL_VALUE );
72 smallNodeMock.numberValueOf( NODE_PROPERTY );
73 control.setReturnValue( BIG_VALUE );
74 control.replay();
75 assertTrue( nnc.compare( smallNodeMock, bigNodeMock ) < 0 );
76 control.verify();
77 }
78
79 public void testCompareEqual()
80 {
81 bigNodeMock.numberValueOf( NODE_PROPERTY );
82 control.setReturnValue( SMALL_VALUE );
83 smallNodeMock.numberValueOf( NODE_PROPERTY );
84 control.setReturnValue( SMALL_VALUE );
85 control.replay();
86 assertEquals( 0, nnc.compare( smallNodeMock, bigNodeMock ) );
87 control.verify();
88 }
89
90
91 public void testCompareWithBigNull()
92 {
93 smallNodeMock.numberValueOf( NODE_PROPERTY );
94 control.setReturnValue( SMALL_VALUE );
95 control.replay();
96 boolean caught = false;
97 try
98 {
99 nnc.compare( null, smallNodeMock );
100 }
101 catch ( NullPointerException npe )
102 {
103 caught = true;
104 }
105 assertTrue( caught );
106 control.verify();
107 }
108
109 public void testCompareWithSmallNull()
110 {
111 bigNodeMock.numberValueOf( NODE_PROPERTY );
112 control.setReturnValue( BIG_VALUE, MockControl.ZERO_OR_MORE );
113 control.replay();
114 boolean caught = false;
115 try
116 {
117 nnc.compare( bigNodeMock, null );
118 }
119 catch ( NullPointerException npe )
120 {
121 caught = true;
122 }
123 assertTrue( caught );
124 control.verify();
125 }
126
127 }