Commit | Line | Data |
---|---|---|
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 | ||
13 | package org.eclipse.linuxtools.tmf.tests.component; | |
14 | ||
15 | import junit.framework.TestCase; | |
16 | ||
fc6ccf6f | 17 | import org.eclipse.linuxtools.tmf.component.TmfDataProvider; |
d18dd09b ASL |
18 | import org.eclipse.linuxtools.tmf.component.TmfProviderManager; |
19 | import org.eclipse.linuxtools.tmf.event.TmfEvent; | |
2fb2eb37 | 20 | import org.eclipse.linuxtools.tmf.request.ITmfDataRequest; |
9f584e4c | 21 | import 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 | */ |
28 | public 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 | } |