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 import org.junit.BeforeClass;
25 import org.junit.Test;
26
27 import com.agical.rmock.extension.junit.RMockTestCase;
28
29
30
31
32
33
34 public class StateTest extends RMockTestCase {
35 State state;
36
37 Transition transition1;
38
39 Transition transition2;
40
41 Transition transition3;
42
43 @BeforeClass
44 protected void setUp() throws Exception {
45 state = new State("test");
46 transition1 = (Transition) mock(Transition.class);
47 transition2 = transition1;
48 transition3 = transition1;
49 }
50
51 @Test
52 public void testAddFirstTransition() throws Exception {
53 assertTrue(state.getTransitions().isEmpty());
54 state.addTransition(transition1);
55 assertFalse(state.getTransitions().isEmpty());
56 assertEquals(1, state.getTransitions().size());
57 assertSame(transition1, state.getTransitions().get(0));
58 }
59
60 @Test
61 public void testUnweightedTransitions() throws Exception {
62 assertTrue(state.getTransitions().isEmpty());
63 state.addTransition(transition1);
64 state.addTransition(transition2);
65 state.addTransition(transition3);
66 assertEquals(3, state.getTransitions().size());
67 assertSame(transition1, state.getTransitions().get(0));
68 assertSame(transition2, state.getTransitions().get(1));
69 assertSame(transition3, state.getTransitions().get(2));
70 }
71
72 @Test
73 public void testWeightedTransitions() throws Exception {
74 assertTrue(state.getTransitions().isEmpty());
75 state.addTransition(transition1, 10);
76 state.addTransition(transition2, 5);
77 state.addTransition(transition3, 7);
78 assertEquals(3, state.getTransitions().size());
79 assertSame(transition2, state.getTransitions().get(0));
80 assertSame(transition3, state.getTransitions().get(1));
81 assertSame(transition1, state.getTransitions().get(2));
82 }
83
84 @Test
85 public void testAddTransitionReturnsSelf() throws Exception {
86 assertSame(state, state.addTransition(transition1));
87 }
88
89 @Test
90 public void testAddNullTransitionThrowsException() throws Exception {
91 try {
92 state.addTransition(null);
93 fail("null transition added. IllegalArgumentException expected.");
94 } catch (IllegalArgumentException npe) {
95 }
96 }
97
98 }