tmf: Update tmf.core unit tests to JUnit4
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / component / TmfProviderManagerTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
6e1886bc 2 * Copyright (c) 2009, 2010, 2013 Ericsson
54a7a54c 3 *
d18dd09b
ASL
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
54a7a54c 8 *
d18dd09b
ASL
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
6e1886bc 11 * Alexandre Montplaisir - Port to JUnit4
d18dd09b
ASL
12 *******************************************************************************/
13
6c13869b 14package org.eclipse.linuxtools.tmf.core.tests.component;
d18dd09b 15
6e1886bc
AM
16import static org.junit.Assert.assertEquals;
17import static org.junit.Assert.assertTrue;
d18dd09b 18
8fd82db5 19import org.eclipse.linuxtools.internal.tmf.core.component.TmfProviderManager;
6c13869b 20import org.eclipse.linuxtools.tmf.core.component.TmfDataProvider;
6256d8ad 21import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
6c13869b 22import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
5419a136 23import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;
6c13869b 24import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
d18dd09b 25
6e1886bc
AM
26import org.junit.Test;
27
d18dd09b 28/**
ff4ed569 29 * Test suite for the TmfProviderManager class.
d18dd09b 30 */
6e1886bc
AM
31@SuppressWarnings("nls")
32public class TmfProviderManagerTest {
33
34 // ------------------------------------------------------------------------
35 // Dummy Providers
36 // ------------------------------------------------------------------------
37
38 private class TestProvider1 extends TmfDataProvider {
39 public TestProvider1(Class<ITmfEvent> type) {
40 super("TestProvider1", type);
41 }
42
43 @Override
44 public ITmfContext armRequest(ITmfDataRequest request) {
45 return null;
46 }
47
48 @Override
49 public ITmfEvent getNext(ITmfContext context) {
50 return null;
51 }
52
53 @Override
54 public boolean isCompleted(ITmfDataRequest request, ITmfEvent data, int nbRead) {
55 return false;
56 }
57 }
58
59 private class TestProvider2 extends TmfDataProvider {
60 public TestProvider2(Class<ITmfEvent> type) {
61 super("TestProvider2", type);
62 }
63
64 @Override
65 public ITmfContext armRequest(ITmfDataRequest request) {
66 return null;
67 }
68
69 @Override
70 public ITmfEvent getNext(ITmfContext context) {
71 return null;
72 }
73
74 @Override
75 public boolean isCompleted(ITmfDataRequest request, ITmfEvent data, int nbRead) {
76 return false;
77 }
78 }
79
80 private class TmfEvent3 extends TmfEvent {
81 @SuppressWarnings("unused")
54a7a54c 82 public TmfEvent3(TmfEvent3 other) {
6e1886bc
AM
83 super(other);
84 }
85 }
86
87 private class TestProvider3 extends TmfDataProvider {
88 public TestProvider3(Class<TmfEvent3> type) {
89 super("TestProvider3", type);
90 }
91
92 @Override
93 public ITmfContext armRequest(ITmfDataRequest request) {
94 return null;
95 }
96
97 @Override
98 public TmfEvent3 getNext(ITmfContext context) {
99 return null;
100 }
101
102 @Override
103 public boolean isCompleted(ITmfDataRequest request, ITmfEvent data, int nbRead) {
104 return false;
105 }
106 }
107
108 // ------------------------------------------------------------------------
109 // register/dispose
110 // ------------------------------------------------------------------------
111
112 /**
113 * Test registering
114 */
115 @Test
116 public void testRegister_0() {
117 TmfDataProvider[] providers = TmfProviderManager.getProviders(ITmfEvent.class);
118 assertEquals("getProviders", 0, providers.length);
119
120 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
121 assertEquals("getProviders", 0, providers.length);
122 }
123
124 /**
125 * Test unregistering
126 */
127 @Test
128 public void testRegister_Unregister_1() {
129
130 // Register a single provider
131 TestProvider1 testProvider1 = new TestProvider1(ITmfEvent.class);
132
133 TmfDataProvider[] providers = TmfProviderManager.getProviders(ITmfEvent.class);
134 assertEquals("getProviders", 1, providers.length);
135 assertEquals("getProviders", testProvider1, providers[0]);
136
137 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
138 assertEquals("getProviders", 1, providers.length);
139 assertEquals("getProviders", testProvider1, providers[0]);
140
141 // Unregister it
142 testProvider1.dispose();
143
144 providers = TmfProviderManager.getProviders(ITmfEvent.class);
145 assertEquals("getProviders", 0, providers.length);
146
147 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
148 assertEquals("getProviders", 0, providers.length);
149 }
150
151 /**
152 * Test unregistering
153 */
154 @Test
155 public void testRegister_Unregister_2() {
156
157 // Register 2 providers, same data type
158 TestProvider1 testProvider1 = new TestProvider1(ITmfEvent.class);
159 TestProvider2 testProvider2 = new TestProvider2(ITmfEvent.class);
160
161 TmfDataProvider[] providers = TmfProviderManager.getProviders(ITmfEvent.class);
162 assertEquals("getProviders", 2, providers.length);
163 assertTrue(providers.length == 2);
164 if (providers[0] == testProvider1) {
165 assertEquals("getProviders", testProvider2, providers[1]);
166 }
167 else {
168 assertEquals("getProviders", testProvider2, providers[0]);
169 assertEquals("getProviders", testProvider1, providers[1]);
170 }
171
172 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
173 assertEquals("getProviders", 1, providers.length);
174 assertEquals("getProviders", testProvider1, providers[0]);
175
176 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
177 assertEquals("getProviders", 1, providers.length);
178 assertEquals("getProviders", testProvider2, providers[0]);
179
180 // Remove one
181 testProvider1.dispose();
182
183 providers = TmfProviderManager.getProviders(ITmfEvent.class);
184 assertEquals("getProviders", 1, providers.length);
185 assertEquals("getProviders", testProvider2, providers[0]);
186
187 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
188 assertEquals("getProviders", 0, providers.length);
189
190 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
191 assertEquals("getProviders", 1, providers.length);
192 assertEquals("getProviders", testProvider2, providers[0]);
193
194 // Remove the other
195 testProvider2.dispose();
196
197 providers = TmfProviderManager.getProviders(ITmfEvent.class);
198 assertEquals("getProviders", 0, providers.length);
199
200 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
201 assertEquals("getProviders", 0, providers.length);
202
203 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
204 assertEquals("getProviders", 0, providers.length);
205 }
206
207 /**
208 * Test unregistering
209 */
210 @Test
211 public void testRegister_Unregister_3() {
212
213 // Register 3 providers, mixed data types
214 TestProvider1 testProvider1 = new TestProvider1(ITmfEvent.class);
215 TestProvider2 testProvider2 = new TestProvider2(ITmfEvent.class);
216 TestProvider3 testProvider3 = new TestProvider3(TmfEvent3.class);
217
218 TmfDataProvider[] providers = TmfProviderManager.getProviders(ITmfEvent.class);
219 assertEquals("getProviders", 2, providers.length);
220 if (providers[0] == testProvider1) {
221 assertEquals("getProviders", testProvider2, providers[1]);
222 }
223 else {
224 assertEquals("getProviders", testProvider2, providers[0]);
225 assertEquals("getProviders", testProvider1, providers[1]);
226 }
227
228 TmfDataProvider[] providers3 = TmfProviderManager.getProviders(TmfEvent3.class);
229 assertEquals("getProviders", 1, providers3.length);
230 assertEquals("getProviders", testProvider3, providers3[0]);
231
232 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
233 assertEquals("getProviders", 1, providers.length);
234 assertEquals("getProviders", testProvider1, providers[0]);
235
236 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
237 assertEquals("getProviders", 1, providers.length);
238 assertEquals("getProviders", testProvider2, providers[0]);
239
240 providers3 = TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
241 assertEquals("getProviders", 1, providers3.length);
242 assertEquals("getProviders", testProvider3, providers3[0]);
243
244 // Remove one
245 testProvider1.dispose();
246
247 providers = TmfProviderManager.getProviders(ITmfEvent.class);
248 assertEquals("getProviders", 1, providers.length);
249 assertEquals("getProviders", testProvider2, providers[0]);
250
251 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
252 assertEquals("getProviders", 0, providers.length);
253
254 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
255 assertEquals("getProviders", 1, providers.length);
256 assertEquals("getProviders", testProvider2, providers[0]);
257
258 providers3 = TmfProviderManager.getProviders(TmfEvent3.class);
259 assertEquals("getProviders", 1, providers3.length);
260 assertEquals("getProviders", testProvider3, providers3[0]);
261
262 providers3 = TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
263 assertEquals("getProviders", 1, providers3.length);
264 assertEquals("getProviders", testProvider3, providers3[0]);
265
266 // Remove another one
267 testProvider2.dispose();
268
269 providers = TmfProviderManager.getProviders(ITmfEvent.class);
270 assertEquals("getProviders", 0, providers.length);
271
272 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
273 assertEquals("getProviders", 0, providers.length);
274
275 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
276 assertEquals("getProviders", 0, providers.length);
277
278 providers3 = TmfProviderManager.getProviders(TmfEvent3.class);
279 assertTrue(providers3.length == 1);
280 assertTrue(providers3[0] == testProvider3);
281
282 providers3 = TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
283 assertEquals("getProviders", 1, providers3.length);
284 assertEquals("getProviders", testProvider3, providers3[0]);
285
286 // Remove the last one
287 testProvider3.dispose();
288
289 providers = TmfProviderManager.getProviders(ITmfEvent.class);
290 assertEquals("getProviders", 0, providers.length);
291
292 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider1.class);
293 assertEquals("getProviders", 0, providers.length);
294
295 providers = TmfProviderManager.getProviders(ITmfEvent.class, TestProvider2.class);
296 assertEquals("getProviders", 0, providers.length);
297
298 providers3 = TmfProviderManager.getProviders(TmfEvent3.class);
299 assertEquals("getProviders", 0, providers.length);
300
301 providers3 = TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
302 assertEquals("getProviders", 0, providers.length);
303 }
304
305 /**
306 * Test getProviders method
307 */
308 @Test
309 public void testGetProvider() {
310
311 // Register 3 providers, mixed data types
312 TestProvider1 testProvider1 = new TestProvider1(ITmfEvent.class);
313 TestProvider2 testProvider2 = new TestProvider2(ITmfEvent.class);
314 TestProvider3 testProvider3 = new TestProvider3(TmfEvent3.class);
315
316 TmfDataProvider[] providers = TmfProviderManager.getProviders(ITmfEvent.class, null);
317 assertEquals("getProviders", 2, providers.length);
318 if (providers[0] == testProvider1) {
319 assertEquals("getProviders", testProvider2, providers[1]);
320 }
321 else {
322 assertEquals("getProviders", testProvider2, providers[0]);
323 assertEquals("getProviders", testProvider1, providers[1]);
324 }
ff4ed569 325
6e1886bc
AM
326 providers = TmfProviderManager.getProviders(TmfEvent3.class, null);
327 assertEquals("getProviders", 1, providers.length);
328 assertEquals("getProviders", testProvider3, providers[0]);
ff4ed569 329
6e1886bc
AM
330 // Remove the providers
331 testProvider1.dispose();
332 testProvider2.dispose();
333 testProvider3.dispose();
334 }
d18dd09b 335
6256d8ad 336}
This page took 0.054918 seconds and 5 git commands to generate.