lttng: Move plugins to their own sub-directory
[deliverable/tracecompass.git] / lttng / org.eclipse.tracecompass.lttng2.control.ui.tests / src / org / eclipse / tracecompass / lttng2 / control / ui / tests / model / component / TraceControlComponentTest.java
1 /**********************************************************************
2 * Copyright (c) 2012, 2014 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 * Bernd Hufmann - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 **********************************************************************/
13
14 package org.eclipse.tracecompass.lttng2.control.ui.tests.model.component;
15
16 import static org.junit.Assert.assertEquals;
17 import static org.junit.Assert.assertFalse;
18 import static org.junit.Assert.assertNotNull;
19 import static org.junit.Assert.assertTrue;
20
21 import java.util.LinkedList;
22 import java.util.List;
23
24 import org.eclipse.core.commands.ExecutionException;
25 import org.eclipse.remote.core.IRemoteConnection;
26 import org.eclipse.swt.graphics.Image;
27 import org.eclipse.tracecompass.internal.lttng2.control.core.model.TargetNodeState;
28 import org.eclipse.tracecompass.internal.lttng2.control.stubs.service.TestRemoteSystemProxy;
29 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.ControlView;
30 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceControlComponent;
31 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.ITraceControlComponentChangedListener;
32 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceControlComponent;
33 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl.TraceControlRoot;
34 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.ILttngControlService;
35 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlService;
36 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlServiceConstants;
37 import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlServiceMI;
38 import org.eclipse.tracecompass.tmf.remote.core.proxy.TmfRemoteConnectionFactory;
39 import org.eclipse.ui.ISharedImages;
40 import org.eclipse.ui.PlatformUI;
41 import org.junit.Test;
42
43 /**
44 * The class <code>TraceControlComponentTest</code> contains tests for the class
45 * <code>{@link TraceControlComponent}</code>.
46 */
47 public class TraceControlComponentTest {
48
49 private IRemoteConnection fHost = TmfRemoteConnectionFactory.getLocalConnection();
50
51 /**
52 * Run the TraceControlComponent(String) constructor test.
53 */
54 @Test
55 public void testTraceControlComponent_1() {
56
57 String name = "node";
58
59 TraceControlComponent result = new TraceControlComponent(name);
60
61 assertNotNull(result);
62 assertEquals(name, result.getName());
63 assertEquals(null, result.getParent());
64 assertEquals(false, result.hasChildren());
65 assertEquals(null, result.getImage());
66 assertEquals(null, result.getControlService());
67 assertEquals(null, result.getToolTip());
68 }
69
70 /**
71 * Run the TraceControlComponent(String,ITraceControlComponent) constructor test.
72 */
73 @Test
74 public void testTraceControlComponent_2() {
75 String name = "node";
76
77 ITraceControlComponent parent = new TraceControlRoot();
78 TraceControlComponent result = new TraceControlComponent(name, parent);
79
80 assertNotNull(result);
81 assertEquals(name, result.getName());
82 assertEquals(false, result.hasChildren());
83 assertEquals(null, result.getImage());
84 assertEquals(null, result.getControlService());
85 assertEquals(null, result.getToolTip());
86 }
87
88 /**
89 * Run the void addChild(ITraceControlComponent) method test.
90 */
91 @Test
92 public void testAddAndGetChild1() {
93 TraceControlComponent fixture = new TraceControlComponent("node", new TraceControlRoot());
94 fixture.setToolTip("This is the test node");
95 fixture.addChild(new TraceControlRoot());
96 ITraceControlComponent component = new TraceControlRoot();
97 fixture.addChild(component);
98
99 ITraceControlComponent child = fixture.getChild(TraceControlRoot.TRACE_CONTROL_ROOT_NAME);
100 assertNotNull(child);
101 assertEquals(TraceControlRoot.TRACE_CONTROL_ROOT_NAME, child.getName());
102 }
103
104 /**
105 * Run the void addChild(ITraceControlComponent) method test.
106 */
107 @Test
108 public void testAddAndGetChild2() {
109 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
110 fixture.setToolTip("");
111 ITraceControlComponent component = null;
112
113 fixture.addChild(component);
114 assertFalse(fixture.hasChildren());
115 }
116
117 /**
118 * Run the void addComponentListener(ITraceControlComponentChangedListener) method test.
119 */
120 @Test
121 public void testAddComponentListener_1() {
122 TraceControlComponent fixture = new TraceControlComponent("", (ITraceControlComponent) null);
123 fixture.setToolTip("");
124
125 ListenerValidator validator = new ListenerValidator();
126 fixture.addComponentListener(validator);
127
128 TraceControlRoot root = new TraceControlRoot();
129 fixture.addChild(root);
130 assertTrue(validator.isAddedCalled());
131
132 fixture.removeChild(root);
133 assertTrue(validator.isRemovedCalled());
134
135 fixture.fireComponentChanged(fixture);
136 assertTrue(validator.isChangedCalled());
137 }
138
139 /**
140 * Run the boolean containsChild(String) method test.
141 */
142 @Test
143 public void testContainsChild_1() {
144 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
145 fixture.setToolTip("");
146 fixture.addChild(new TraceControlRoot());
147 String name = "node";
148
149 boolean result = fixture.containsChild(name);
150
151 assertEquals(false, result);
152 }
153
154 /**
155 * Run the boolean containsChild(String) method test.
156 */
157 @Test
158 public void testContainsChild_2() {
159 TraceControlComponent fixture = new TraceControlComponent("name", new TraceControlRoot());
160 fixture.setToolTip("");
161
162 boolean result = fixture.containsChild(TraceControlRoot.TRACE_CONTROL_ROOT_NAME);
163
164 assertEquals(false, result);
165 }
166
167 /**
168 * Run the void fireCompenentAdded(ITraceControlComponent,ITraceControlComponent) method test.
169 * Run the void fireCompenentRemoved(ITraceControlComponent,ITraceControlComponent) method test.
170 * Run the void fireCompenentChanged(ITraceControlComponent) method test
171 */
172 @Test
173 public void testFireCompenentUpdated() {
174 ITraceControlComponent parent = new TraceControlRoot();
175
176 TraceControlComponent fixture = new TraceControlComponent("node", parent);
177 fixture.setToolTip("");
178
179 ITraceControlComponent component = new TraceControlComponent("child");
180 fixture.addChild(component);
181
182 ListenerValidator validator = new ListenerValidator();
183 fixture.addComponentListener(validator);
184
185 fixture.fireComponentAdded(parent, component);
186 assertTrue(validator.isAddedCalled());
187 assertEquals(parent.getName(), validator.getSavedParent().getName());
188 assertEquals(component.getName(), validator.getSavedChild().getName());
189
190 validator.initialize();
191
192 fixture.fireComponentRemoved(parent, component);
193 assertTrue(validator.isRemovedCalled());
194 assertEquals(parent.getName(), validator.getSavedParent().getName());
195 assertEquals(component.getName(), validator.getSavedChild().getName());
196
197 validator.initialize();
198 fixture.fireComponentChanged(fixture);
199 assertTrue(validator.isChangedCalled());
200 assertEquals(fixture.getName(), validator.getSavedComponent().getName());
201 }
202
203 /**
204 * Run the Object getAdapter(Class) method test.
205 */
206 @Test
207 public void testGetAdapter() {
208 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
209 fixture.setToolTip("");
210 fixture.addChild(new TraceControlRoot());
211 Class<Object> adapter = Object.class;
212
213 Object result = fixture.getAdapter(adapter);
214
215 assertEquals(null, result);
216 }
217
218 /**
219 * Run the ITraceControlComponent[] getChildren() method test.
220 */
221 @Test
222 public void testGetChildren_1() {
223 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
224 fixture.setToolTip("");
225 fixture.addChild(new TraceControlRoot());
226
227 ITraceControlComponent[] result = fixture.getChildren();
228
229 assertNotNull(result);
230 assertEquals(1, result.length);
231 assertNotNull(result[0]);
232 assertEquals("trace_control_root", result[0].getName());
233 assertEquals(null, result[0].getParent());
234 assertEquals(false, result[0].hasChildren());
235 assertEquals(null, result[0].getImage());
236 assertEquals(null, result[0].getControlService());
237 assertEquals(null, result[0].getToolTip());
238 }
239
240 /**
241 * Run the ILttngControlService getControlService()/setControlService()
242 * method test.
243 *
244 * @throws ExecutionException
245 * Would fail the test
246 */
247 @Test
248 public void testGetAndSetControlService_1() throws ExecutionException {
249
250 TraceControlComponent parent = new TraceControlComponent("parent") {
251 ILttngControlService fService = null;
252
253 @Override
254 public void setControlService(ILttngControlService service ) {
255 fService = service;
256 }
257
258 @Override
259 public ILttngControlService getControlService() {
260 return fService;
261 }
262 };
263
264 TraceControlComponent fixture = new TraceControlComponent("", parent);
265 parent.addChild(fixture);
266 fixture.setToolTip("");
267 TraceControlComponent child = new TraceControlComponent("child", fixture);
268 fixture.addChild(child);
269
270 ILttngControlService result = fixture.getControlService();
271 assertEquals(null, result);
272
273 TestRemoteSystemProxy proxy = new TestRemoteSystemProxy(fHost);
274 ILttngControlService service = new LTTngControlService(proxy.createCommandShell());
275 fixture.setControlService(service);
276 result = fixture.getControlService();
277 assertNotNull(service);
278 assertEquals(service, result);
279
280 service = new LTTngControlServiceMI(proxy.createCommandShell(), LTTngControlServiceMI.class.getResource(LTTngControlServiceConstants.MI_XSD_FILENAME));
281 fixture.setControlService(service);
282 result = fixture.getControlService();
283 assertNotNull(service);
284 assertEquals(service, result);
285
286 result = fixture.getChildren()[0].getControlService();
287 assertNotNull(service);
288 assertEquals(service, result);
289 }
290
291 /**
292 * Run the Image getImage() method test.
293 */
294 @Test
295 public void testGetImage_1() {
296 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
297 fixture.setToolTip("");
298 fixture.addChild(new TraceControlRoot());
299
300 Image result = fixture.getImage();
301 assertEquals(null, result);
302
303 fixture.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
304 assertNotNull(fixture.getImage());
305 }
306
307 /**
308 * Run the boolean hasChildren() method test.
309 */
310 @Test
311 public void testHasChildren_1() {
312 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
313 fixture.setToolTip("");
314 fixture.addChild(new TraceControlRoot());
315
316 boolean result = fixture.hasChildren();
317
318 assertTrue(result);
319 }
320
321 /**
322 * Run the boolean hasChildren() method test.
323 */
324 @Test
325 public void testHasChildren_2() {
326 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
327 fixture.setToolTip("");
328
329 boolean result = fixture.hasChildren();
330
331 assertFalse(result);
332 }
333
334 /**
335 * Run the void removeAllChildren() method test.
336 */
337 @Test
338 public void testRemoveAllChildren_2() {
339 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
340 fixture.setToolTip("");
341
342 fixture.addChild(new TraceControlRoot());
343 fixture.addChild(new TraceControlComponent("child"));
344
345 fixture.removeAllChildren();
346 assertFalse(fixture.hasChildren());
347 }
348
349 /**
350 * Run the void removeChild(ITraceControlComponent) method test.
351 */
352 @Test
353 public void testRemoveChild_1() {
354 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
355 fixture.setToolTip("");
356 TraceControlComponent child = new TraceControlComponent("child", fixture);
357
358 fixture.addChild(child);
359 fixture.removeChild(child);
360 assertFalse(fixture.hasChildren());
361 }
362
363 /**
364 * Run the void removeChild(ITraceControlComponent) method test.
365 */
366 @Test
367 public void testRemoveChild_2() {
368 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
369 fixture.setToolTip("");
370 fixture.addChild(new TraceControlRoot());
371 ITraceControlComponent component = null;
372
373 fixture.removeChild(component);
374 assertTrue(fixture.hasChildren());
375 }
376
377 /**
378 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
379 */
380 @Test
381 public void testRemoveComponentListener_1() {
382 TraceControlComponent fixture = new TraceControlComponent("", (ITraceControlComponent) null);
383 fixture.setToolTip("");
384
385 ListenerValidator validator = new ListenerValidator();
386 fixture.addComponentListener(validator);
387
388 // Remove listener and check that validator is not called anymore
389 validator.initialize();
390 fixture.removeComponentListener(validator);
391 TraceControlRoot root = new TraceControlRoot();
392 fixture.addChild(root);
393 assertFalse(validator.isAddedCalled());
394
395 fixture.removeChild(root);
396 assertFalse(validator.isRemovedCalled());
397
398 fixture.fireComponentChanged(fixture);
399 assertFalse(validator.isChangedCalled());
400 }
401
402 /**
403 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
404 */
405 @Test
406 public void testRemoveComponentListener_2() {
407 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
408 fixture.setToolTip("");
409 fixture.addChild(new TraceControlRoot());
410 ITraceControlComponentChangedListener listener = new ControlView();
411
412 fixture.removeComponentListener(listener);
413
414 }
415
416 /**
417 * Run the void setChildren(List<ITraceControlComponent>)/ITraceControlComponent[] getChildren() method test.
418 */
419 @Test
420 public void testGetAndSetChildren() {
421 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
422 fixture.setToolTip("");
423 List<ITraceControlComponent> children = new LinkedList<>();
424 children.add(new TraceControlComponent("child1"));
425 children.add(new TraceControlComponent("child2"));
426
427 fixture.setChildren(children);
428
429 ITraceControlComponent[] result = fixture.getChildren();
430 assertEquals(2, result.length);
431 assertEquals("child1", result[0].getName());
432 assertEquals("child2", result[1].getName());
433 }
434
435 /**
436 * Run the void String getName()/setName(String) method tests.
437 */
438 @Test
439 public void testGetAndSetName() {
440 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
441 fixture.setToolTip("");
442 fixture.addChild(new TraceControlRoot());
443 String name = "node";
444
445 fixture.setName(name);
446 assertEquals(name,fixture.getName());
447
448 }
449
450 /**
451 * Run the void ITraceControlComponent getParent()/setParent(ITraceControlComponent) method tests.
452 */
453 @Test
454 public void testGetAndSetParent() {
455 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
456 fixture.setToolTip("");
457 fixture.addChild(new TraceControlRoot());
458 ITraceControlComponent parent = new TraceControlRoot();
459 parent.addChild(fixture);
460
461 fixture.setParent(parent);
462 ITraceControlComponent retrievedParent = fixture.getParent();
463 assertNotNull(retrievedParent);
464 assertEquals(parent.getName(), retrievedParent.getName());
465 assertEquals(TraceControlRoot.TRACE_CONTROL_ROOT_NAME, retrievedParent.getName());
466 assertEquals(null, retrievedParent.getParent());
467 assertEquals(true, retrievedParent.hasChildren());
468 }
469
470 /**
471 * Run the void TargetNodeState getTargetNodeState()/etTargetNodeState(TargetNodeState) method tests.
472 */
473 @Test
474 public void testGetAndSetTargetNodeState_1() {
475 TraceControlComponent parent = new TraceControlComponent("parent") {
476 private TargetNodeState fState;
477
478 @Override
479 public void setTargetNodeState(TargetNodeState state ) {
480 fState = state;
481 }
482
483 @Override
484 public TargetNodeState getTargetNodeState() {
485 return fState;
486 }
487 };
488
489 TraceControlComponent fixture = new TraceControlComponent("", parent);
490 parent.addChild(fixture);
491
492 fixture.setToolTip("");
493 TargetNodeState state = TargetNodeState.CONNECTED;
494
495 fixture.setTargetNodeState(state);
496 TargetNodeState result = fixture.getTargetNodeState();
497
498 assertNotNull(result);
499 assertEquals(state, result);
500 // Check also parent
501 assertEquals(state, fixture.getParent().getTargetNodeState());
502 assertEquals("CONNECTED", result.name());
503 assertEquals("CONNECTED", result.toString());
504 assertEquals(2, result.ordinal());
505
506 fixture.setTargetNodeState(TargetNodeState.DISCONNECTED);
507 result = fixture.getTargetNodeState();
508 assertNotNull(result);
509 assertEquals("DISCONNECTED", result.name());
510 assertEquals("DISCONNECTED", result.toString());
511 assertEquals(0, result.ordinal());
512
513 state = TargetNodeState.CONNECTING;
514
515 fixture.setTargetNodeState(state);
516 result = fixture.getTargetNodeState();
517 assertNotNull(result);
518 assertEquals("CONNECTING", result.name());
519 assertEquals("CONNECTING", result.toString());
520 assertEquals(3, result.ordinal());
521
522 fixture.setTargetNodeState(TargetNodeState.DISCONNECTING);
523 result = fixture.getTargetNodeState();
524 assertNotNull(result);
525 assertEquals("DISCONNECTING", result.name());
526 assertEquals("DISCONNECTING", result.toString());
527 assertEquals(1, result.ordinal());
528
529 }
530
531 /**
532 * Run the void setToolTip(String) method test.
533 */
534 @Test
535 public void testGetSndSetToolTip() {
536 TraceControlComponent fixture = new TraceControlComponent("", new TraceControlRoot());
537 fixture.setToolTip("This is a tooltip");
538 fixture.addChild(new TraceControlRoot());
539
540 String result = fixture.getToolTip();
541
542 assertEquals("This is a tooltip", result);
543 }
544 }
This page took 0.053638 seconds and 5 git commands to generate.