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