1 /*******************************************************************************
2 * Copyright (c) 2009 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 * Francois Chouinard (fchouinard@gmail.com) - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.eventlog
;
15 import static org
.junit
.Assert
.*;
17 import java
.util
.Vector
;
19 import org
.eclipse
.linuxtools
.tmf
.event
.TmfEvent
;
20 import org
.eclipse
.linuxtools
.tmf
.event
.TmfTimeRange
;
21 import org
.eclipse
.linuxtools
.tmf
.event
.TmfTimestamp
;
22 import org
.junit
.BeforeClass
;
23 import org
.junit
.Test
;
26 * <b><u>TmfEventRequestTest</u></b>
28 * TODO: Implement me. Please.
30 public class TmfEventRequestTest
{
32 private static ITmfRequestHandler fProcessor
= null;
35 public static void setUpBeforeClass() throws Exception
{
36 fProcessor
= new TmfRequestHandlerStub();
39 // ========================================================================
41 // ========================================================================
44 public void testConstructorForRange() throws Exception
{
45 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
46 TmfEventRequest request
= new TmfEventRequest(range
, 0, -1, 1);
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());
55 public void testConstructorForNbEvents() throws Exception
{
56 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
57 TmfEventRequest request
= new TmfEventRequest(range
, 0, 10, 1);
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());
66 public void testConstructorWithOffset() throws Exception
{
67 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
68 TmfEventRequest request
= new TmfEventRequest(range
, 5, 10, 1);
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());
77 public void testConstructorWithNegativeOffset() throws Exception
{
78 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
79 TmfEventRequest request
= new TmfEventRequest(range
, -5, 10, 1);
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());
87 // ========================================================================
89 // ========================================================================
92 public void testProcessRequestForNbEvents() throws Exception
{
94 final int NB_EVENTS
= 10 * 1000;
95 final int BLOCK_SIZE
= 100;
96 final Vector
<TmfEvent
> requestedEvents
= new Vector
<TmfEvent
>();
98 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
99 final TmfEventRequest request
= new TmfEventRequest(range
, 0, NB_EVENTS
, BLOCK_SIZE
) {
101 public void newEvents(Vector
<TmfEvent
> events
) {
102 for (TmfEvent e
: events
) {
103 requestedEvents
.add(e
);
107 fProcessor
.process(request
, true);
109 assertEquals("nbEvents", NB_EVENTS
, requestedEvents
.size());
110 assertTrue("isCompleted", request
.isCompleted());
111 assertFalse("isCancelled", request
.isCancelled());
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());
121 public void testProcessRequestForAllEvents() throws Exception
{
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
;
128 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
129 final TmfEventRequest request
= new TmfEventRequest(range
, 0, NB_EVENTS
, BLOCK_SIZE
) {
131 public void newEvents(Vector
<TmfEvent
> events
) {
132 for (TmfEvent e
: events
) {
133 requestedEvents
.add(e
);
137 fProcessor
.process(request
, true);
139 assertEquals("nbEvents", nbExpectedEvents
, requestedEvents
.size());
140 assertTrue("isCompleted", request
.isCompleted());
141 assertFalse("isCancelled", request
.isCancelled());
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());
151 public void testProcessRequestWithOffset() throws Exception
{
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
;
159 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
160 final TmfEventRequest request
= new TmfEventRequest(range
, OFFSET
, NB_EVENTS
, BLOCK_SIZE
) {
162 public void newEvents(Vector
<TmfEvent
> events
) {
163 for (TmfEvent e
: events
) {
164 requestedEvents
.add(e
);
168 fProcessor
.process(request
, true);
170 assertEquals("nbEvents", nbExpectedEvents
, requestedEvents
.size());
171 assertTrue("isCompleted", request
.isCompleted());
172 assertFalse("isCancelled", request
.isCancelled());
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());
182 public void testProcessRequestWithNegativeOffset() throws Exception
{
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
;
190 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
191 final TmfEventRequest request
= new TmfEventRequest(range
, OFFSET
, NB_EVENTS
, BLOCK_SIZE
) {
193 public void newEvents(Vector
<TmfEvent
> events
) {
194 for (TmfEvent e
: events
) {
195 requestedEvents
.add(e
);
199 fProcessor
.process(request
, true);
201 assertEquals("nbEvents", nbExpectedEvents
, requestedEvents
.size());
202 assertTrue("isCompleted", request
.isCompleted());
203 assertFalse("isCancelled", request
.isCancelled());
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());
212 // ========================================================================
214 // ========================================================================
217 public void testCancel() throws Exception
{
219 final int NB_EVENTS
= 10 * 1000;
220 final int BLOCK_SIZE
= 100;
221 final Vector
<TmfEvent
> requestedEvents
= new Vector
<TmfEvent
>();
223 TmfTimeRange range
= new TmfTimeRange(TmfTimestamp
.BigBang
, TmfTimestamp
.BigCrunch
);
224 final TmfEventRequest request
= new TmfEventRequest(range
, 0, NB_EVENTS
, BLOCK_SIZE
) {
226 public void newEvents(Vector
<TmfEvent
> events
) {
227 for (TmfEvent e
: events
) {
228 requestedEvents
.add(e
);
230 // Cancel request after the first chunk is received
234 fProcessor
.process(request
, true);
236 assertEquals("nbEvents", BLOCK_SIZE
, requestedEvents
.size());
237 assertTrue("isCompleted", request
.isCompleted());
238 assertTrue("isCancelled", request
.isCancelled());