d8d056d3e4476e26452b26e688a1404f6febfb1b
1 /*******************************************************************************
2 * Copyright (c) 2016 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Patrick Tasse - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.tracecompass
.tmf
.ui
.tests
.widgets
.timegraph
.model
;
15 import static org
.junit
.Assert
.assertEquals
;
16 import static org
.junit
.Assert
.assertFalse
;
17 import static org
.junit
.Assert
.assertTrue
;
19 import java
.util
.Iterator
;
21 import org
.eclipse
.swt
.SWT
;
22 import org
.eclipse
.tracecompass
.tmf
.ui
.widgets
.timegraph
.model
.ITimeEvent
;
23 import org
.eclipse
.tracecompass
.tmf
.ui
.widgets
.timegraph
.model
.NullTimeEvent
;
24 import org
.eclipse
.tracecompass
.tmf
.ui
.widgets
.timegraph
.model
.TimeEvent
;
25 import org
.eclipse
.tracecompass
.tmf
.ui
.widgets
.timegraph
.model
.TimeGraphEntry
;
26 import org
.junit
.Test
;
28 import com
.google
.common
.collect
.Iterators
;
31 * Test the {@link TimeGraphEntry} class
33 public class TimeGraphEntryTest
{
35 private final static String NAME
= "name";
38 * Test method addEvent.
41 public void testAddEvent() {
42 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
43 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
44 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
45 entry
.addEvent(event1
);
46 entry
.addEvent(event2
);
47 assertEquals(0, entry
.getStartTime());
48 assertEquals(20, entry
.getEndTime());
49 assertIteratorsEqual(Iterators
.forArray(event1
, event2
), entry
.getTimeEventsIterator());
53 * Test method addEvent with replaced last event.
56 public void testAddEventReplaceLast() {
57 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
58 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
59 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
60 ITimeEvent event3a
= new TimeEvent(entry
, 20, 5, 3);
61 ITimeEvent event3
= new TimeEvent(entry
, 20, 10, 3);
62 entry
.addEvent(event1
);
63 entry
.addEvent(event2
);
64 entry
.addEvent(event3a
);
65 // last event is replaced
66 entry
.addEvent(event3
);
67 assertEquals(0, entry
.getStartTime());
68 assertEquals(30, entry
.getEndTime());
69 assertIteratorsEqual(Iterators
.forArray(event1
, event2
, event3
), entry
.getTimeEventsIterator());
73 * Test method addEvent with null events.
76 public void testAddEventNulls() {
77 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
78 ITimeEvent event1
= new NullTimeEvent(entry
, 0, 10);
79 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
80 ITimeEvent event3
= new NullTimeEvent(entry
, 20, 10);
81 // null events do not affect start and end time
82 entry
.addEvent(event1
);
83 entry
.addEvent(event2
);
84 entry
.addEvent(event3
);
85 assertEquals(10, entry
.getStartTime());
86 assertEquals(20, entry
.getEndTime());
87 assertIteratorsEqual(Iterators
.forArray(event1
, event2
, event3
), entry
.getTimeEventsIterator());
90 * Test method addZoomedEvent.
93 public void testaddZoomedEvent() {
94 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
95 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
96 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
97 entry
.addZoomedEvent(event1
);
98 entry
.addZoomedEvent(event2
);
99 assertEquals(0, entry
.getStartTime());
100 assertEquals(20, entry
.getEndTime());
101 assertIteratorsEqual(Iterators
.forArray(event1
, event2
), entry
.getTimeEventsIterator());
105 * Test method addZoomedEvent with duplicates.
108 public void testaddZoomedEventDuplicate() {
109 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
110 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
111 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
112 ITimeEvent event3
= new TimeEvent(entry
, 20, 10, 3);
113 entry
.addZoomedEvent(event1
);
114 entry
.addZoomedEvent(event2
);
115 // duplicate events are not added twice
116 entry
.addZoomedEvent(event1
);
117 entry
.addZoomedEvent(event2
);
118 entry
.addZoomedEvent(event3
);
119 assertEquals(0, entry
.getStartTime());
120 assertEquals(30, entry
.getEndTime());
121 assertIteratorsEqual(Iterators
.forArray(event1
, event2
, event3
), entry
.getTimeEventsIterator());
125 * Test method addZoomedEvent with replaced last event.
128 public void testaddZoomedEventReplaceLast() {
129 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
130 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
131 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
132 ITimeEvent event3a
= new TimeEvent(entry
, 20, 5, 3);
133 ITimeEvent event3
= new TimeEvent(entry
, 20, 10, 3);
134 entry
.addZoomedEvent(event1
);
135 entry
.addZoomedEvent(event2
);
136 entry
.addZoomedEvent(event3a
);
137 entry
.addZoomedEvent(event1
);
138 entry
.addZoomedEvent(event2
);
139 // last event is replaced
140 entry
.addZoomedEvent(event3
);
141 assertEquals(0, entry
.getStartTime());
142 assertEquals(30, entry
.getEndTime());
143 assertIteratorsEqual(Iterators
.forArray(event1
, event2
, event3
), entry
.getTimeEventsIterator());
147 * Test method addZoomedEvent with null events.
150 public void testAddZoomedEventNulls() {
151 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
152 ITimeEvent event1
= new NullTimeEvent(entry
, 0, 10);
153 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
154 ITimeEvent event3
= new NullTimeEvent(entry
, 20, 10);
155 // null events do not affect start and end time
156 entry
.addZoomedEvent(event1
);
157 entry
.addZoomedEvent(event2
);
158 entry
.addZoomedEvent(event3
);
159 assertEquals(10, entry
.getStartTime());
160 assertEquals(20, entry
.getEndTime());
161 assertIteratorsEqual(Iterators
.forArray(event1
, event2
, event3
), entry
.getTimeEventsIterator());
165 * Test method addZoomedEvent with partial list restarted.
168 public void testaddZoomedEventPartialRestart() {
169 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
170 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
171 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
172 ITimeEvent event3
= new TimeEvent(entry
, 20, 10, 3);
173 entry
.addZoomedEvent(event2
);
174 entry
.addZoomedEvent(event3
);
175 // zoomed list is cleared and restarted
176 entry
.addZoomedEvent(event1
);
177 entry
.addZoomedEvent(event2
);
178 entry
.addZoomedEvent(event3
);
179 assertEquals(0, entry
.getStartTime());
180 assertEquals(30, entry
.getEndTime());
181 assertIteratorsEqual(Iterators
.forArray(event1
, event2
, event3
), entry
.getTimeEventsIterator());
185 * Test method getTimeEventsIterator with event list and zoomed list.
188 public void testGetTimeEventsIteratorMixed() {
189 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
190 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
191 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
192 ITimeEvent event3
= new TimeEvent(entry
, 20, 10, 3);
193 ITimeEvent event2a
= new TimeEvent(entry
, 10, 5, 4);
194 ITimeEvent event2b
= new TimeEvent(entry
, 15, 5, 5);
195 entry
.addEvent(event1
);
196 entry
.addEvent(event2
);
197 entry
.addEvent(event3
);
198 // zoomed events override normal events they overlap completely
199 entry
.addZoomedEvent(event2a
);
200 entry
.addZoomedEvent(event2b
);
201 assertEquals(0, entry
.getStartTime());
202 assertEquals(30, entry
.getEndTime());
203 assertIteratorsEqual(Iterators
.forArray(event1
, event2a
, event2b
, event3
), entry
.getTimeEventsIterator());
207 * Test method getTimeEventsIterator with event list and zoomed list partially overlapping.
210 public void testGetTimeEventsIteratorMixedSplit() {
211 TimeGraphEntry entry
= new TimeGraphEntry(NAME
, SWT
.DEFAULT
, SWT
.DEFAULT
);
212 ITimeEvent event1
= new TimeEvent(entry
, 0, 10, 1);
213 ITimeEvent event2
= new TimeEvent(entry
, 10, 10, 2);
214 ITimeEvent event3
= new TimeEvent(entry
, 20, 10, 3);
215 ITimeEvent event2a
= new TimeEvent(entry
, 5, 10, 4);
216 ITimeEvent event2b
= new TimeEvent(entry
, 15, 10, 5);
217 ITimeEvent event1s
= new TimeEvent(entry
, 0, 5, 1);
218 ITimeEvent event3s
= new TimeEvent(entry
, 25, 5, 3);
219 entry
.addEvent(event1
);
220 entry
.addEvent(event2
);
221 entry
.addEvent(event3
);
222 // zoomed events split and override normal events they overlap partially
223 entry
.addZoomedEvent(event2a
);
224 entry
.addZoomedEvent(event2b
);
225 assertEquals(0, entry
.getStartTime());
226 assertEquals(30, entry
.getEndTime());
227 assertIteratorsEqual(Iterators
.forArray(event1s
, event2a
, event2b
, event3s
), entry
.getTimeEventsIterator());
230 private static void assertIteratorsEqual(Iterator
<ITimeEvent
> expected
, Iterator
<ITimeEvent
> actual
) {
232 while (expected
.hasNext()) {
233 assertTrue("missing event at position " + i
, actual
.hasNext());
234 ITimeEvent e1
= expected
.next();
235 ITimeEvent e2
= actual
.next();
236 assertEquals("not equal events at position " + i
, e1
, e2
);
239 assertFalse("extra event at position " + i
, actual
.hasNext());
This page took 0.035862 seconds and 4 git commands to generate.