1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.statemachine;
21
22 import org.apache.mina.statemachine.State;
23 import org.apache.mina.statemachine.transition.Transition;
24
25 import com.agical.rmock.extension.junit.RMockTestCase;
26
27
28
29
30
31
32
33 public class StateTest extends RMockTestCase {
34 State state;
35 Transition transition1;
36 Transition transition2;
37 Transition transition3;
38
39 protected void setUp() throws Exception {
40 state = new State("test");
41 transition1 = (Transition) mock(Transition.class);
42 transition2 = (Transition) mock(Transition.class);
43 transition3 = (Transition) mock(Transition.class);
44 }
45
46 public void testAddFirstTransition() throws Exception {
47 assertTrue(state.getTransitions().isEmpty());
48 state.addTransition(transition1);
49 assertFalse(state.getTransitions().isEmpty());
50 assertEquals(1, state.getTransitions().size());
51 assertSame(transition1, state.getTransitions().get(0));
52 }
53
54 public void testUnweightedTransitions() throws Exception {
55 assertTrue(state.getTransitions().isEmpty());
56 state.addTransition(transition1);
57 state.addTransition(transition2);
58 state.addTransition(transition3);
59 assertEquals(3, state.getTransitions().size());
60 assertSame(transition1, state.getTransitions().get(0));
61 assertSame(transition2, state.getTransitions().get(1));
62 assertSame(transition3, state.getTransitions().get(2));
63 }
64
65 public void testWeightedTransitions() throws Exception {
66 assertTrue(state.getTransitions().isEmpty());
67 state.addTransition(transition1, 10);
68 state.addTransition(transition2, 5);
69 state.addTransition(transition3, 7);
70 assertEquals(3, state.getTransitions().size());
71 assertSame(transition2, state.getTransitions().get(0));
72 assertSame(transition3, state.getTransitions().get(1));
73 assertSame(transition1, state.getTransitions().get(2));
74 }
75
76 public void testAddTransitionReturnsSelf() throws Exception {
77 assertSame(state, state.addTransition(transition1));
78 }
79
80 public void testAddNullTransitionThrowsException() throws Exception {
81 try {
82 state.addTransition(null);
83 fail("null transition added. NullPointerException expected.");
84 } catch (NullPointerException npe) {
85 }
86 }
87
88 }