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