April 28, 2010
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.tests / src / org / eclipse / linuxtools / tmf / tests / component / TmfProviderManagerTest.java
CommitLineData
d18dd09b
ASL
1/*******************************************************************************
2 * Copyright (c) 2009, 2010 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 - Initial API and implementation
11 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.tests.component;
14
15import junit.framework.TestCase;
16
fc6ccf6f 17import org.eclipse.linuxtools.tmf.component.TmfDataProvider;
d18dd09b
ASL
18import org.eclipse.linuxtools.tmf.component.TmfProviderManager;
19import org.eclipse.linuxtools.tmf.event.TmfEvent;
2fb2eb37 20import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
9f584e4c 21import org.eclipse.linuxtools.tmf.trace.ITmfContext;
d18dd09b
ASL
22
23/**
24 * <b><u>TmfProviderManagerTest</u></b>
25 * <p>
e31e01e8 26 * TODO: Implement me. Please.
d18dd09b
ASL
27 */
28public class TmfProviderManagerTest extends TestCase {
29
fc6ccf6f
FC
30 public TmfProviderManagerTest(String name) {
31 super(name);
32 }
33
d18dd09b
ASL
34 @Override
35 protected void setUp() throws Exception {
36 super.setUp();
37 }
38
39 @Override
40 protected void tearDown() throws Exception {
41 super.tearDown();
42 }
43
44 // ------------------------------------------------------------------------
45 // Dummy Providers
46 // ------------------------------------------------------------------------
47
fc6ccf6f 48 public class TestProvider1 extends TmfDataProvider<TmfEvent> {
d18dd09b 49 public TestProvider1(Class<TmfEvent> type) {
fc6ccf6f 50 super("TestProvider1", type);
d18dd09b
ASL
51 }
52 @Override
2fb2eb37 53 public ITmfContext armRequest(ITmfDataRequest<TmfEvent> request) {
d18dd09b
ASL
54 return null;
55 }
56 @Override
57 public TmfEvent getNext(ITmfContext context) {
58 return null;
59 }
60 @Override
2fb2eb37 61 public boolean isCompleted(ITmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
d18dd09b
ASL
62 return false;
63 }
64 }
65
fc6ccf6f 66 public class TestProvider2 extends TmfDataProvider<TmfEvent> {
d18dd09b 67 public TestProvider2(Class<TmfEvent> type) {
fc6ccf6f 68 super("TestProvider2", type);
d18dd09b
ASL
69 }
70 @Override
2fb2eb37 71 public ITmfContext armRequest(ITmfDataRequest<TmfEvent> request) {
d18dd09b
ASL
72 return null;
73 }
74 @Override
75 public TmfEvent getNext(ITmfContext context) {
76 return null;
77 }
78 @Override
2fb2eb37 79 public boolean isCompleted(ITmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
d18dd09b
ASL
80 return false;
81 }
82 }
83
84 public class TmfEvent3 extends TmfEvent {
85 public TmfEvent3(TmfEvent3 other) {
86 super(other);
87 }
88 }
89
fc6ccf6f 90 public class TestProvider3 extends TmfDataProvider<TmfEvent3> {
d18dd09b 91 public TestProvider3(Class<TmfEvent3> type) {
fc6ccf6f 92 super("TestProvider3", type);
d18dd09b
ASL
93 }
94 @Override
2fb2eb37 95 public ITmfContext armRequest(ITmfDataRequest<TmfEvent3> request) {
d18dd09b
ASL
96 return null;
97 }
98 @Override
99 public TmfEvent3 getNext(ITmfContext context) {
100 return null;
101 }
102 @Override
2fb2eb37 103 public boolean isCompleted(ITmfDataRequest<TmfEvent3> request, TmfEvent3 data, int nbRead) {
d18dd09b
ASL
104 return false;
105 }
106 }
107
108 // ------------------------------------------------------------------------
e31e01e8 109 // register()
d18dd09b
ASL
110 // ------------------------------------------------------------------------
111
112 @SuppressWarnings("unchecked")
113 public void testRegister_0() {
fc6ccf6f 114 TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8 115 assertTrue(providers.length == 0);
d18dd09b 116
fc6ccf6f 117 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 118 assertTrue(providers.length == 0);
d18dd09b
ASL
119 }
120
121 @SuppressWarnings("unchecked")
122 public void testRegister_Unregister_1() {
123
124 // Register a single provider
125 TestProvider1 testProvider1 = new TestProvider1(TmfEvent.class);
126
fc6ccf6f 127 TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8
FC
128 assertTrue(providers.length == 1);
129 assertTrue(providers[0] == testProvider1);
d18dd09b 130
fc6ccf6f 131 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8
FC
132 assertTrue(providers.length == 1);
133 assertTrue(providers[0] == testProvider1);
d18dd09b
ASL
134
135 // Unregister it
2fb2eb37 136 testProvider1.dispose();
d18dd09b 137
fc6ccf6f 138 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8 139 assertTrue(providers.length == 0);
d18dd09b 140
fc6ccf6f 141 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 142 assertTrue(providers.length == 0);
d18dd09b
ASL
143 }
144
145 @SuppressWarnings("unchecked")
146 public void testRegister_Unregister_2() {
147
148 // Register 2 providers, same data type
149 TestProvider1 testProvider1 = new TestProvider1(TmfEvent.class);
150 TestProvider2 testProvider2 = new TestProvider2(TmfEvent.class);
151
fc6ccf6f 152 TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
d18dd09b
ASL
153 assertTrue(providers.length == 2);
154 if (providers[0] == testProvider1) {
e31e01e8 155 assertTrue(providers[1] == testProvider2);
d18dd09b
ASL
156 }
157 else {
e31e01e8
FC
158 assertTrue(providers[1] == testProvider1);
159 assertTrue(providers[0] == testProvider2);
d18dd09b
ASL
160 }
161
fc6ccf6f 162 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8
FC
163 assertTrue(providers.length == 1);
164 assertTrue(providers[0] == testProvider1);
d18dd09b 165
fc6ccf6f 166 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8
FC
167 assertTrue(providers.length == 1);
168 assertTrue(providers[0] == testProvider2);
d18dd09b
ASL
169
170 // Remove one
2fb2eb37 171 testProvider1.dispose();
d18dd09b 172
fc6ccf6f 173 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8
FC
174 assertTrue(providers.length == 1);
175 assertTrue(providers[0] == testProvider2);
d18dd09b 176
fc6ccf6f 177 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 178 assertTrue(providers.length == 0);
d18dd09b 179
fc6ccf6f 180 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8
FC
181 assertTrue(providers.length == 1);
182 assertTrue(providers[0] == testProvider2);
d18dd09b
ASL
183
184 // Remove the other
2fb2eb37 185 testProvider2.dispose();
d18dd09b 186
fc6ccf6f 187 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8 188 assertTrue(providers.length == 0);
d18dd09b 189
fc6ccf6f 190 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 191 assertTrue(providers.length == 0);
d18dd09b 192
fc6ccf6f 193 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8 194 assertTrue(providers.length == 0);
d18dd09b
ASL
195 }
196
197 @SuppressWarnings("unchecked")
198 public void testRegister_Unregister_3() {
199
200 // Register 3 providers, mixed data types
201 TestProvider1 testProvider1 = new TestProvider1(TmfEvent.class);
202 TestProvider2 testProvider2 = new TestProvider2(TmfEvent.class);
203 TestProvider3 testProvider3 = new TestProvider3(TmfEvent3.class);
204
fc6ccf6f 205 TmfDataProvider<TmfEvent>[] providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8 206 assertTrue(providers.length == 2);
d18dd09b 207 if (providers[0] == testProvider1) {
e31e01e8 208 assertTrue(providers[1] == testProvider2);
d18dd09b
ASL
209 }
210 else {
e31e01e8
FC
211 assertTrue(providers[1] == testProvider1);
212 assertTrue(providers[0] == testProvider2);
d18dd09b
ASL
213 }
214
fc6ccf6f 215 TmfDataProvider<TmfEvent3>[] providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
e31e01e8
FC
216 assertTrue(providers3.length == 1);
217 assertTrue(providers3[0] == testProvider3);
d18dd09b 218
fc6ccf6f 219 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8
FC
220 assertTrue(providers.length == 1);
221 assertTrue(providers[0] == testProvider1);
d18dd09b 222
fc6ccf6f 223 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8
FC
224 assertTrue(providers.length == 1);
225 assertTrue(providers[0] == testProvider2);
d18dd09b 226
fc6ccf6f 227 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
e31e01e8
FC
228 assertTrue(providers3.length == 1);
229 assertTrue(providers3[0] == testProvider3);
d18dd09b
ASL
230
231 // Remove one
2fb2eb37 232 testProvider1.dispose();
d18dd09b 233
fc6ccf6f 234 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8
FC
235 assertTrue(providers.length == 1);
236 assertTrue(providers[0] == testProvider2);
d18dd09b 237
fc6ccf6f 238 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 239 assertTrue(providers.length == 0);
d18dd09b 240
fc6ccf6f 241 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8
FC
242 assertTrue(providers.length == 1);
243 assertTrue(providers[0] == testProvider2);
d18dd09b 244
fc6ccf6f 245 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
e31e01e8
FC
246 assertTrue(providers3.length == 1);
247 assertTrue(providers3[0] == testProvider3);
d18dd09b 248
fc6ccf6f 249 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
e31e01e8
FC
250 assertTrue(providers3.length == 1);
251 assertTrue(providers3[0] == testProvider3);
d18dd09b
ASL
252
253 // Remove another one
2fb2eb37 254 testProvider2.dispose();
d18dd09b 255
fc6ccf6f 256 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8 257 assertTrue(providers.length == 0);
d18dd09b 258
fc6ccf6f 259 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 260 assertTrue(providers.length == 0);
d18dd09b 261
fc6ccf6f 262 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8 263 assertTrue(providers.length == 0);
d18dd09b 264
fc6ccf6f 265 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
d18dd09b
ASL
266 assertTrue(providers3.length == 1);
267 assertTrue(providers3[0] == testProvider3);
268
fc6ccf6f 269 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
e31e01e8
FC
270 assertTrue(providers3.length == 1);
271 assertTrue(providers3[0] == testProvider3);
d18dd09b
ASL
272
273 // Remove the last one
2fb2eb37 274 testProvider3.dispose();
d18dd09b 275
fc6ccf6f 276 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
e31e01e8 277 assertTrue(providers.length == 0);
d18dd09b 278
fc6ccf6f 279 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider1.class);
e31e01e8 280 assertTrue(providers.length == 0);
d18dd09b 281
fc6ccf6f 282 providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TestProvider2.class);
e31e01e8 283 assertTrue(providers.length == 0);
d18dd09b 284
fc6ccf6f 285 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class);
e31e01e8 286 assertTrue(providers3.length == 0);
d18dd09b 287
fc6ccf6f 288 providers3 = (TmfDataProvider<TmfEvent3>[]) TmfProviderManager.getProviders(TmfEvent3.class, TestProvider3.class);
e31e01e8 289 assertTrue(providers3.length == 0);
d18dd09b
ASL
290 }
291
292}
This page took 0.090078 seconds and 5 git commands to generate.