Update for Bug287562 (Event Model code refresh + JUnits)
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.tests / src / org / eclipse / linuxtools / tmf / eventlog / TmfEventRequestTest.java
CommitLineData
4ab33d2b
AO
1/*******************************************************************************
2 * Copyright (c) 2009 Ericsson
3 *
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
8 *
9 * Contributors:
10 * Francois Chouinard (fchouinard@gmail.com) - Initial API and implementation
11 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.eventlog;
14
15import static org.junit.Assert.*;
16
17import java.util.Vector;
18
19import org.eclipse.linuxtools.tmf.event.TmfEvent;
1f506a43 20import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
4ab33d2b
AO
21import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
22import org.junit.BeforeClass;
23import org.junit.Test;
24
25/**
26 * <b><u>TmfEventRequestTest</u></b>
27 * <p>
28 * TODO: Implement me. Please.
29 */
30public class TmfEventRequestTest {
31
32 private static ITmfRequestHandler fProcessor = null;
33
34 @BeforeClass
35 public static void setUpBeforeClass() throws Exception {
36 fProcessor = new TmfRequestHandlerStub();
37 }
38
39 // ========================================================================
40 // Constructor
41 // ========================================================================
42
43 @Test
44 public void testConstructorForRange() throws Exception {
1f506a43 45 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
46 TmfEventRequest request = new TmfEventRequest(range, 0, -1, 1);
47
48 assertEquals("StartTime", TmfTimestamp.BigBang, request.getRange().getStartTime());
49 assertEquals("EndTime", TmfTimestamp.BigCrunch, request.getRange().getEndTime());
50 assertEquals("Offset", 0, request.getOffset());
51 assertEquals("NbRequestedEvents", -1, request.getNbRequestedEvents());
52 }
53
54 @Test
55 public void testConstructorForNbEvents() throws Exception {
1f506a43 56 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
57 TmfEventRequest request = new TmfEventRequest(range, 0, 10, 1);
58
59 assertEquals("StartTime", TmfTimestamp.BigBang, request.getRange().getStartTime());
60 assertEquals("EndTime", TmfTimestamp.BigCrunch, request.getRange().getEndTime());
61 assertEquals("Offset", 0, request.getOffset());
62 assertEquals("NbRequestedEvents", 10, request.getNbRequestedEvents());
63 }
64
65 @Test
66 public void testConstructorWithOffset() throws Exception {
1f506a43 67 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
68 TmfEventRequest request = new TmfEventRequest(range, 5, 10, 1);
69
70 assertEquals("StartTime", TmfTimestamp.BigBang, request.getRange().getStartTime());
71 assertEquals("EndTime", TmfTimestamp.BigCrunch, request.getRange().getEndTime());
72 assertEquals("Offset", 5, request.getOffset());
73 assertEquals("NbRequestedEvents", 10, request.getNbRequestedEvents());
74 }
75
76 @Test
77 public void testConstructorWithNegativeOffset() throws Exception {
1f506a43 78 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
79 TmfEventRequest request = new TmfEventRequest(range, -5, 10, 1);
80
81 assertEquals("StartTime", TmfTimestamp.BigBang, request.getRange().getStartTime());
82 assertEquals("EndTime", TmfTimestamp.BigCrunch, request.getRange().getEndTime());
83 assertEquals("Offset", -5, request.getOffset());
84 assertEquals("NbRequestedEvents", 10, request.getNbRequestedEvents());
85 }
86
87 // ========================================================================
88 // process
89 // ========================================================================
90
91 @Test
92 public void testProcessRequestForNbEvents() throws Exception {
93
94 final int NB_EVENTS = 10 * 1000;
95 final int BLOCK_SIZE = 100;
96 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
97
1f506a43 98 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
99 final TmfEventRequest request = new TmfEventRequest(range, 0, NB_EVENTS, BLOCK_SIZE) {
100 @Override
101 public void newEvents(Vector<TmfEvent> events) {
102 for (TmfEvent e : events) {
103 requestedEvents.add(e);
104 }
105 }
106 };
107 fProcessor.process(request, true);
108
109 assertEquals("nbEvents", NB_EVENTS, requestedEvents.size());
110 assertTrue("isCompleted", request.isCompleted());
111 assertFalse("isCancelled", request.isCancelled());
112
113 // Ensure that we have distinct events.
114 // Don't go overboard: we are not validating the stub!
115 for (int i = 0; i < NB_EVENTS; i++) {
116 assertEquals("Distinct events", i, requestedEvents.get(i).getTimestamp().getValue());
117 }
118 }
119
120 @Test
121 public void testProcessRequestForAllEvents() throws Exception {
122
123 final int NB_EVENTS = -1;
124 final int BLOCK_SIZE = 1;
125 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
126 int nbExpectedEvents = TmfRequestHandlerStub.MAX_GENERATED_EVENTS;
127
1f506a43 128 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
129 final TmfEventRequest request = new TmfEventRequest(range, 0, NB_EVENTS, BLOCK_SIZE) {
130 @Override
131 public void newEvents(Vector<TmfEvent> events) {
132 for (TmfEvent e : events) {
133 requestedEvents.add(e);
134 }
135 }
136 };
137 fProcessor.process(request, true);
138
139 assertEquals("nbEvents", nbExpectedEvents, requestedEvents.size());
140 assertTrue("isCompleted", request.isCompleted());
141 assertFalse("isCancelled", request.isCancelled());
142
143 // Ensure that we have distinct events.
144 // Don't go overboard: we are not validating the stub!
145 for (int i = 0; i < nbExpectedEvents; i++) {
146 assertEquals("Distinct events", i, requestedEvents.get(i).getTimestamp().getValue());
147 }
148 }
149
150 // @Test
151 public void testProcessRequestWithOffset() throws Exception {
152
153 final int NB_EVENTS = -1;
154 final int BLOCK_SIZE = 1;
155 final int OFFSET = 5;
156 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
157 int nbExpectedEvents = TmfRequestHandlerStub.MAX_GENERATED_EVENTS;
158
1f506a43 159 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
160 final TmfEventRequest request = new TmfEventRequest(range, OFFSET, NB_EVENTS, BLOCK_SIZE) {
161 @Override
162 public void newEvents(Vector<TmfEvent> events) {
163 for (TmfEvent e : events) {
164 requestedEvents.add(e);
165 }
166 }
167 };
168 fProcessor.process(request, true);
169
170 assertEquals("nbEvents", nbExpectedEvents, requestedEvents.size());
171 assertTrue("isCompleted", request.isCompleted());
172 assertFalse("isCancelled", request.isCancelled());
173
174 // Ensure that we have distinct events.
175 // Don't go overboard: we are not validating the stub!
176 for (int i = 0; i < nbExpectedEvents; i++) {
177 assertEquals("Distinct events", i + OFFSET, requestedEvents.get(i).getTimestamp().getValue());
178 }
179 }
180
181 // l@Test
182 public void testProcessRequestWithNegativeOffset() throws Exception {
183
184 final int NB_EVENTS = -1;
185 final int BLOCK_SIZE = 1;
186 final int OFFSET = -5;
187 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
188 int nbExpectedEvents = TmfRequestHandlerStub.MAX_GENERATED_EVENTS;
189
1f506a43 190 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
191 final TmfEventRequest request = new TmfEventRequest(range, OFFSET, NB_EVENTS, BLOCK_SIZE) {
192 @Override
193 public void newEvents(Vector<TmfEvent> events) {
194 for (TmfEvent e : events) {
195 requestedEvents.add(e);
196 }
197 }
198 };
199 fProcessor.process(request, true);
200
201 assertEquals("nbEvents", nbExpectedEvents, requestedEvents.size());
202 assertTrue("isCompleted", request.isCompleted());
203 assertFalse("isCancelled", request.isCancelled());
204
205 // Ensure that we have distinct events.
206 // Don't go overboard: we are not validating the stub!
207 for (int i = 0; i < nbExpectedEvents; i++) {
208 assertEquals("Distinct events", i + OFFSET, requestedEvents.get(i).getTimestamp().getValue());
209 }
210 }
211
212 // ========================================================================
213 // cancel
214 // ========================================================================
215
216 @Test
217 public void testCancel() throws Exception {
218
219 final int NB_EVENTS = 10 * 1000;
220 final int BLOCK_SIZE = 100;
221 final Vector<TmfEvent> requestedEvents = new Vector<TmfEvent>();
222
1f506a43 223 TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
4ab33d2b
AO
224 final TmfEventRequest request = new TmfEventRequest(range, 0, NB_EVENTS, BLOCK_SIZE) {
225 @Override
226 public void newEvents(Vector<TmfEvent> events) {
227 for (TmfEvent e : events) {
228 requestedEvents.add(e);
229 }
230 // Cancel request after the first chunk is received
231 cancel();
232 }
233 };
234 fProcessor.process(request, true);
235
236 assertEquals("nbEvents", BLOCK_SIZE, requestedEvents.size());
237 assertTrue("isCompleted", request.isCompleted());
238 assertTrue("isCancelled", request.isCancelled());
239 }
240
241}
This page took 0.044399 seconds and 5 git commands to generate.