1 /*******************************************************************************
2 * Copyright (c) 2009, 2013 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 - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 *******************************************************************************/
14 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.component
;
16 import static org
.junit
.Assert
.assertEquals
;
17 import static org
.junit
.Assert
.assertTrue
;
19 import org
.eclipse
.linuxtools
.internal
.tmf
.core
.component
.TmfProviderManager
;
20 import org
.eclipse
.linuxtools
.tmf
.core
.component
.TmfEventProvider
;
21 import org
.eclipse
.linuxtools
.tmf
.core
.event
.ITmfEvent
;
22 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfEvent
;
23 import org
.eclipse
.linuxtools
.tmf
.core
.request
.ITmfEventRequest
;
24 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.ITmfContext
;
25 import org
.junit
.Test
;
28 * Test suite for the TmfProviderManager class.
30 public class TmfProviderManagerTest
{
32 // ------------------------------------------------------------------------
34 // ------------------------------------------------------------------------
36 private class TestProvider1
extends TmfEventProvider
{
37 public TestProvider1(Class
<ITmfEvent
> type
) {
38 super("TestProvider1", type
);
42 public ITmfContext
armRequest(ITmfEventRequest request
) {
47 public ITmfEvent
getNext(ITmfContext context
) {
52 public boolean isCompleted(ITmfEventRequest request
, ITmfEvent data
, int nbRead
) {
57 private class TestProvider2
extends TmfEventProvider
{
58 public TestProvider2(Class
<ITmfEvent
> type
) {
59 super("TestProvider2", type
);
63 public ITmfContext
armRequest(ITmfEventRequest request
) {
68 public ITmfEvent
getNext(ITmfContext context
) {
73 public boolean isCompleted(ITmfEventRequest request
, ITmfEvent data
, int nbRead
) {
78 private class TmfEvent3
extends TmfEvent
{
81 private class TestProvider3
extends TmfEventProvider
{
82 public TestProvider3(Class
<TmfEvent3
> type
) {
83 super("TestProvider3", type
);
87 public ITmfContext
armRequest(ITmfEventRequest request
) {
92 public TmfEvent3
getNext(ITmfContext context
) {
97 public boolean isCompleted(ITmfEventRequest request
, ITmfEvent data
, int nbRead
) {
102 // ------------------------------------------------------------------------
104 // ------------------------------------------------------------------------
110 public void testRegister_0() {
111 TmfEventProvider
[] providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
112 assertEquals("getProviders", 0, providers
.length
);
114 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
115 assertEquals("getProviders", 0, providers
.length
);
122 public void testRegister_Unregister_1() {
124 // Register a single provider
125 TestProvider1 testProvider1
= new TestProvider1(ITmfEvent
.class);
127 TmfEventProvider
[] providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
128 assertEquals("getProviders", 1, providers
.length
);
129 assertEquals("getProviders", testProvider1
, providers
[0]);
131 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
132 assertEquals("getProviders", 1, providers
.length
);
133 assertEquals("getProviders", testProvider1
, providers
[0]);
136 testProvider1
.dispose();
138 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
139 assertEquals("getProviders", 0, providers
.length
);
141 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
142 assertEquals("getProviders", 0, providers
.length
);
149 public void testRegister_Unregister_2() {
151 // Register 2 providers, same data type
152 TestProvider1 testProvider1
= new TestProvider1(ITmfEvent
.class);
153 TestProvider2 testProvider2
= new TestProvider2(ITmfEvent
.class);
155 TmfEventProvider
[] providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
156 assertEquals("getProviders", 2, providers
.length
);
157 assertTrue(providers
.length
== 2);
158 if (providers
[0] == testProvider1
) {
159 assertEquals("getProviders", testProvider2
, providers
[1]);
162 assertEquals("getProviders", testProvider2
, providers
[0]);
163 assertEquals("getProviders", testProvider1
, providers
[1]);
166 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
167 assertEquals("getProviders", 1, providers
.length
);
168 assertEquals("getProviders", testProvider1
, providers
[0]);
170 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
171 assertEquals("getProviders", 1, providers
.length
);
172 assertEquals("getProviders", testProvider2
, providers
[0]);
175 testProvider1
.dispose();
177 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
178 assertEquals("getProviders", 1, providers
.length
);
179 assertEquals("getProviders", testProvider2
, providers
[0]);
181 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
182 assertEquals("getProviders", 0, providers
.length
);
184 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
185 assertEquals("getProviders", 1, providers
.length
);
186 assertEquals("getProviders", testProvider2
, providers
[0]);
189 testProvider2
.dispose();
191 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
192 assertEquals("getProviders", 0, providers
.length
);
194 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
195 assertEquals("getProviders", 0, providers
.length
);
197 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
198 assertEquals("getProviders", 0, providers
.length
);
205 public void testRegister_Unregister_3() {
207 // Register 3 providers, mixed data types
208 TestProvider1 testProvider1
= new TestProvider1(ITmfEvent
.class);
209 TestProvider2 testProvider2
= new TestProvider2(ITmfEvent
.class);
210 TestProvider3 testProvider3
= new TestProvider3(TmfEvent3
.class);
212 TmfEventProvider
[] providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
213 assertEquals("getProviders", 2, providers
.length
);
214 if (providers
[0] == testProvider1
) {
215 assertEquals("getProviders", testProvider2
, providers
[1]);
218 assertEquals("getProviders", testProvider2
, providers
[0]);
219 assertEquals("getProviders", testProvider1
, providers
[1]);
222 TmfEventProvider
[] providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class);
223 assertEquals("getProviders", 1, providers3
.length
);
224 assertEquals("getProviders", testProvider3
, providers3
[0]);
226 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
227 assertEquals("getProviders", 1, providers
.length
);
228 assertEquals("getProviders", testProvider1
, providers
[0]);
230 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
231 assertEquals("getProviders", 1, providers
.length
);
232 assertEquals("getProviders", testProvider2
, providers
[0]);
234 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class, TestProvider3
.class);
235 assertEquals("getProviders", 1, providers3
.length
);
236 assertEquals("getProviders", testProvider3
, providers3
[0]);
239 testProvider1
.dispose();
241 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
242 assertEquals("getProviders", 1, providers
.length
);
243 assertEquals("getProviders", testProvider2
, providers
[0]);
245 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
246 assertEquals("getProviders", 0, providers
.length
);
248 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
249 assertEquals("getProviders", 1, providers
.length
);
250 assertEquals("getProviders", testProvider2
, providers
[0]);
252 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class);
253 assertEquals("getProviders", 1, providers3
.length
);
254 assertEquals("getProviders", testProvider3
, providers3
[0]);
256 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class, TestProvider3
.class);
257 assertEquals("getProviders", 1, providers3
.length
);
258 assertEquals("getProviders", testProvider3
, providers3
[0]);
260 // Remove another one
261 testProvider2
.dispose();
263 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
264 assertEquals("getProviders", 0, providers
.length
);
266 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
267 assertEquals("getProviders", 0, providers
.length
);
269 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
270 assertEquals("getProviders", 0, providers
.length
);
272 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class);
273 assertTrue(providers3
.length
== 1);
274 assertTrue(providers3
[0] == testProvider3
);
276 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class, TestProvider3
.class);
277 assertEquals("getProviders", 1, providers3
.length
);
278 assertEquals("getProviders", testProvider3
, providers3
[0]);
280 // Remove the last one
281 testProvider3
.dispose();
283 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class);
284 assertEquals("getProviders", 0, providers
.length
);
286 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider1
.class);
287 assertEquals("getProviders", 0, providers
.length
);
289 providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, TestProvider2
.class);
290 assertEquals("getProviders", 0, providers
.length
);
292 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class);
293 assertEquals("getProviders", 0, providers
.length
);
295 providers3
= TmfProviderManager
.getProviders(TmfEvent3
.class, TestProvider3
.class);
296 assertEquals("getProviders", 0, providers
.length
);
300 * Test getProviders method
303 public void testGetProvider() {
305 // Register 3 providers, mixed data types
306 TestProvider1 testProvider1
= new TestProvider1(ITmfEvent
.class);
307 TestProvider2 testProvider2
= new TestProvider2(ITmfEvent
.class);
308 TestProvider3 testProvider3
= new TestProvider3(TmfEvent3
.class);
310 TmfEventProvider
[] providers
= TmfProviderManager
.getProviders(ITmfEvent
.class, null);
311 assertEquals("getProviders", 2, providers
.length
);
312 if (providers
[0] == testProvider1
) {
313 assertEquals("getProviders", testProvider2
, providers
[1]);
316 assertEquals("getProviders", testProvider2
, providers
[0]);
317 assertEquals("getProviders", testProvider1
, providers
[1]);
320 providers
= TmfProviderManager
.getProviders(TmfEvent3
.class, null);
321 assertEquals("getProviders", 1, providers
.length
);
322 assertEquals("getProviders", testProvider3
, providers
[0]);
324 // Remove the providers
325 testProvider1
.dispose();
326 testProvider2
.dispose();
327 testProvider3
.dispose();