source: tmcsimulator-scriptbuilder/trunk/test/scriptbuilder/structures/ScriptIncidentTest.java @ 13

Revision 13, 6.1 KB checked in by bmcguffin, 9 years ago (diff)

Added a JUnit 3 test file for ScriptIncident?.

Line 
1package scriptbuilder.structures;
2
3import java.util.ArrayList;
4import junit.framework.TestCase;
5import static org.mockito.Matchers.*;
6import scriptbuilder.structures.events.*;
7import static org.mockito.Mockito.*;
8import scriptbuilder.structures.ScriptIncident.IncidentFocusedEvent;
9import scriptbuilder.structures.ScriptIncident.SliceChangedEvent;
10
11/**
12 *
13 * @author Bryan McGuffin
14 */
15public class ScriptIncidentTest extends TestCase
16{
17
18    SimulationScript mockedScript;
19
20    public ScriptIncidentTest(String testName)
21    {
22        super(testName);
23    }
24
25    /**
26     * Test of setCollapsed method, of class ScriptIncident.
27     */
28    public void testSetCollapsed()
29    {
30        System.out.println("setCollapsed");
31        mockedScript = mock(SimulationScript.class);
32        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
33        assertFalse(instance.collapsed);
34        verify(mockedScript, times(0)).update();
35        instance.setCollapsed(false);
36        assertFalse(instance.collapsed);
37        verify(mockedScript, times(1)).update();
38        instance.setCollapsed(true);
39        assertTrue(instance.collapsed);
40
41        verify(mockedScript, times(2)).update();
42    }
43
44    /**
45     * Test of setOffset method, of class ScriptIncident.
46     */
47    public void testSetOffset()
48    {
49        System.out.println("setOffset");
50        mockedScript = mock(SimulationScript.class);
51        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
52        int offset = 10;
53        assertEquals(0, instance.offset);
54        verify(mockedScript, times(0)).update();
55        instance.setOffset(offset);
56        assertEquals(10, instance.offset);
57        verify(mockedScript, times(1)).update();
58        instance.setOffset(0);
59        assertEquals(0, instance.offset);
60        verify(mockedScript, times(2)).update();
61    }
62
63    /**
64     * Test of addNewEvent method, of class ScriptIncident.
65     */
66    public void testAddNewEvent()
67    {
68        System.out.println("addNewEvent");
69        mockedScript = mock(SimulationScript.class);
70        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
71        assertEquals(0, instance.length);
72        assertEquals(0, instance.eventCount);
73        I_ScriptEvent ev1 = mock(I_ScriptEvent.class);
74        when(ev1.getLength()).thenReturn(1);
75        I_ScriptEvent ev2 = mock(I_ScriptEvent.class);
76        when(ev2.getLength()).thenReturn(4);
77        I_ScriptEvent ev3 = mock(I_ScriptEvent.class);
78        when(ev3.getLength()).thenReturn(4);
79        int start = 0;
80        instance.addNewEvent(ev1, start);
81        assertEquals(1, instance.length);
82        assertEquals(1, instance.eventCount);
83
84        start = 0;
85        instance.addNewEvent(ev2, start);
86        assertEquals(4, instance.length);
87        assertEquals(2, instance.eventCount);
88
89        start = 2;
90        instance.addNewEvent(ev3, start);
91        assertEquals(6, instance.length);
92        assertEquals(3, instance.eventCount);
93
94    }
95
96    /**
97     * Test of getSlices method, of class ScriptIncident.
98     */
99    public void testGetSlices()
100    {
101        System.out.println("getSlices");
102        mockedScript = mock(SimulationScript.class);
103        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
104        //Empty list; no events in incident
105        ArrayList<TimeSlice> result = instance.getSlices();
106        assertEquals(0, result.size());
107
108        I_ScriptEvent ev1 = mock(I_ScriptEvent.class);
109        when(ev1.getLength()).thenReturn(1);
110
111        //One event, one timeslice
112        instance.addNewEvent(ev1, 0);
113        result = instance.getSlices();
114        assertEquals(1, result.size());
115
116        //Two simultaneous events start in the same timeslice
117        instance.addNewEvent(ev1, 0);
118        result = instance.getSlices();
119        assertEquals(1, result.size());
120
121        //A third event starts at a different time so it requires a new timeslice
122        instance.addNewEvent(ev1, ev1.getLength() + 100);
123        result = instance.getSlices();
124        assertEquals(2, result.size());
125
126    }
127
128    /**
129     * Test of setSliceActive method, of class ScriptIncident.
130     */
131    public void testSetSliceActive()
132    {
133        boolean passFlag = false;
134        System.out.println("setSliceActive");
135        mockedScript = mock(SimulationScript.class);
136        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
137        int time_a = 0;
138        int time_b = 5;
139        instance.setSliceActive(time_a);
140        verify(mockedScript, never()).broadcastEvent(isA(SliceChangedEvent.class));
141        instance.setSliceActive(time_b);
142        verify(mockedScript, never()).broadcastEvent(isA(SliceChangedEvent.class));
143        instance.addNewEvent(mock(I_ScriptEvent.class), time_a);
144        instance.setSliceActive(time_a);
145        verify(mockedScript, times(1)).broadcastEvent(isA(SliceChangedEvent.class));
146        instance.setSliceActive(time_b);
147        verify(mockedScript, times(1)).broadcastEvent(isA(SliceChangedEvent.class));
148    }
149
150    /**
151     * Test of setIncidentActive method, of class ScriptIncident.
152     */
153    public void testSetIncidentActive()
154    {
155        System.out.println("setIncidentActive");
156        mockedScript = mock(SimulationScript.class);
157        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
158        verify(mockedScript, never()).broadcastEvent(isA(IncidentFocusedEvent.class));
159        instance.setIncidentActive();
160        verify(mockedScript, times(1)).broadcastEvent(isA(IncidentFocusedEvent.class));
161       
162    }
163
164    /**
165     * Test of toString method, of class ScriptIncident.
166     */
167    public void testToString()
168    {
169        System.out.println("toString");
170        mockedScript = mock(SimulationScript.class);
171        ScriptIncident instance = new ScriptIncident(101, "Test_Incident", "Description", mockedScript);
172        String expResult = "101 - Test_Incident";
173        String result = instance.toString();
174        assertEquals(expResult, result);
175
176    }
177
178}
Note: See TracBrowser for help on using the repository browser.