1 /**********************************************************************
2 * Copyright (c) 2012, 2013 Ericsson
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
10 * Bernd Hufmann - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 **********************************************************************/
14 package org
.eclipse
.linuxtools
.lttng2
.ui
.tests
.control
.model
.component
;
16 import static org
.junit
.Assert
.*;
18 import java
.util
.LinkedList
;
19 import java
.util
.List
;
21 import org
.eclipse
.core
.commands
.ExecutionException
;
22 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TargetNodeState
;
23 import org
.eclipse
.linuxtools
.internal
.lttng2
.stubs
.service
.TestRemoteSystemProxy
;
24 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.ControlView
;
25 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.model
.ITraceControlComponent
;
26 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.model
.ITraceControlComponentChangedListener
;
27 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.model
.impl
.TraceControlComponent
;
28 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.model
.impl
.TraceControlRoot
;
29 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.service
.ILttngControlService
;
30 import org
.eclipse
.linuxtools
.internal
.lttng2
.ui
.views
.control
.service
.LTTngControlService
;
31 import org
.eclipse
.swt
.graphics
.Image
;
32 import org
.eclipse
.ui
.ISharedImages
;
33 import org
.eclipse
.ui
.PlatformUI
;
34 import org
.junit
.Test
;
37 * The class <code>TraceControlComponentTest</code> contains tests for the class
38 * <code>{@link TraceControlComponent}</code>.
40 @SuppressWarnings("nls")
41 public class TraceControlComponentTest
{
44 * Run the TraceControlComponent(String) constructor test.
47 public void testTraceControlComponent_1() {
51 TraceControlComponent result
= new TraceControlComponent(name
);
53 assertNotNull(result
);
54 assertEquals(name
, result
.getName());
55 assertEquals(null, result
.getParent());
56 assertEquals(false, result
.hasChildren());
57 assertEquals(null, result
.getImage());
58 assertEquals(null, result
.getControlService());
59 assertEquals(null, result
.getToolTip());
63 * Run the TraceControlComponent(String,ITraceControlComponent) constructor test.
66 public void testTraceControlComponent_2() {
69 ITraceControlComponent parent
= new TraceControlRoot();
70 TraceControlComponent result
= new TraceControlComponent(name
, parent
);
72 assertNotNull(result
);
73 assertEquals(name
, result
.getName());
74 assertEquals(false, result
.hasChildren());
75 assertEquals(null, result
.getImage());
76 assertEquals(null, result
.getControlService());
77 assertEquals(null, result
.getToolTip());
81 * Run the void addChild(ITraceControlComponent) method test.
84 public void testAddAndGetChild1() {
85 TraceControlComponent fixture
= new TraceControlComponent("node", new TraceControlRoot());
86 fixture
.setToolTip("This is the test node");
87 fixture
.addChild(new TraceControlRoot());
88 ITraceControlComponent component
= new TraceControlRoot();
89 fixture
.addChild(component
);
91 ITraceControlComponent child
= fixture
.getChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
93 assertEquals(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
, child
.getName());
97 * Run the void addChild(ITraceControlComponent) method test.
100 public void testAddAndGetChild2() {
101 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
102 fixture
.setToolTip("");
103 ITraceControlComponent component
= null;
105 fixture
.addChild(component
);
106 assertFalse(fixture
.hasChildren());
110 * Run the void addComponentListener(ITraceControlComponentChangedListener) method test.
113 public void testAddComponentListener_1() {
114 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
115 fixture
.setToolTip("");
117 ListenerValidator validator
= new ListenerValidator();
118 fixture
.addComponentListener(validator
);
120 TraceControlRoot root
= new TraceControlRoot();
121 fixture
.addChild(root
);
122 assertTrue(validator
.isAddedCalled());
124 fixture
.removeChild(root
);
125 assertTrue(validator
.isRemovedCalled());
127 fixture
.fireComponentChanged(fixture
);
128 assertTrue(validator
.isChangedCalled());
132 * Run the boolean containsChild(String) method test.
135 public void testContainsChild_1() {
136 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
137 fixture
.setToolTip("");
138 fixture
.addChild(new TraceControlRoot());
139 String name
= "node";
141 boolean result
= fixture
.containsChild(name
);
143 assertEquals(false, result
);
147 * Run the boolean containsChild(String) method test.
150 public void testContainsChild_2() {
151 TraceControlComponent fixture
= new TraceControlComponent("name", new TraceControlRoot());
152 fixture
.setToolTip("");
154 boolean result
= fixture
.containsChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
156 assertEquals(false, result
);
160 * Run the void fireCompenentAdded(ITraceControlComponent,ITraceControlComponent) method test.
161 * Run the void fireCompenentRemoved(ITraceControlComponent,ITraceControlComponent) method test.
162 * Run the void fireCompenentChanged(ITraceControlComponent) method test
165 public void testFireCompenentUpdated() {
166 ITraceControlComponent parent
= new TraceControlRoot();
168 TraceControlComponent fixture
= new TraceControlComponent("node", parent
);
169 fixture
.setToolTip("");
171 ITraceControlComponent component
= new TraceControlComponent("child");
172 fixture
.addChild(component
);
174 ListenerValidator validator
= new ListenerValidator();
175 fixture
.addComponentListener(validator
);
177 fixture
.fireComponentAdded(parent
, component
);
178 assertTrue(validator
.isAddedCalled());
179 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
180 assertEquals(component
.getName(), validator
.getSavedChild().getName());
182 validator
.initialize();
184 fixture
.fireComponentRemoved(parent
, component
);
185 assertTrue(validator
.isRemovedCalled());
186 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
187 assertEquals(component
.getName(), validator
.getSavedChild().getName());
189 validator
.initialize();
190 fixture
.fireComponentChanged(fixture
);
191 assertTrue(validator
.isChangedCalled());
192 assertEquals(fixture
.getName(), validator
.getSavedComponent().getName());
196 * Run the Object getAdapter(Class) method test.
199 public void testGetAdapter() {
200 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
201 fixture
.setToolTip("");
202 fixture
.addChild(new TraceControlRoot());
203 Class
<Object
> adapter
= Object
.class;
205 Object result
= fixture
.getAdapter(adapter
);
207 assertEquals(null, result
);
211 * Run the ITraceControlComponent[] getChildren() method test.
214 public void testGetChildren_1() {
215 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
216 fixture
.setToolTip("");
217 fixture
.addChild(new TraceControlRoot());
219 ITraceControlComponent
[] result
= fixture
.getChildren();
221 assertNotNull(result
);
222 assertEquals(1, result
.length
);
223 assertNotNull(result
[0]);
224 assertEquals("trace_control_root", result
[0].getName());
225 assertEquals(null, result
[0].getParent());
226 assertEquals(false, result
[0].hasChildren());
227 assertEquals(null, result
[0].getImage());
228 assertEquals(null, result
[0].getControlService());
229 assertEquals(null, result
[0].getToolTip());
233 * Run the ILttngControlService getControlService()/setControlService()
236 * @throws ExecutionException
237 * Would fail the test
240 public void testGetAndSetControlService_1() throws ExecutionException
{
242 TraceControlComponent parent
= new TraceControlComponent("parent") {
243 ILttngControlService fService
= null;
246 public void setControlService(ILttngControlService service
) {
251 public ILttngControlService
getControlService() {
256 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
257 parent
.addChild(fixture
);
258 fixture
.setToolTip("");
259 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
260 fixture
.addChild(child
);
262 ILttngControlService result
= fixture
.getControlService();
263 assertEquals(null, result
);
265 TestRemoteSystemProxy proxy
= new TestRemoteSystemProxy();
266 ILttngControlService service
= new LTTngControlService(proxy
.createCommandShell());
267 fixture
.setControlService(service
);
268 result
= fixture
.getControlService();
269 assertNotNull(service
);
270 assertEquals(service
, result
);
272 result
= fixture
.getChildren()[0].getControlService();
273 assertNotNull(service
);
274 assertEquals(service
, result
);
278 * Run the Image getImage() method test.
281 public void testGetImage_1() {
282 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
283 fixture
.setToolTip("");
284 fixture
.addChild(new TraceControlRoot());
286 Image result
= fixture
.getImage();
287 assertEquals(null, result
);
289 fixture
.setImage(PlatformUI
.getWorkbench().getSharedImages().getImage(ISharedImages
.IMG_OBJ_FOLDER
));
290 assertNotNull(fixture
.getImage());
294 * Run the boolean hasChildren() method test.
297 public void testHasChildren_1() {
298 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
299 fixture
.setToolTip("");
300 fixture
.addChild(new TraceControlRoot());
302 boolean result
= fixture
.hasChildren();
308 * Run the boolean hasChildren() method test.
311 public void testHasChildren_2() {
312 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
313 fixture
.setToolTip("");
315 boolean result
= fixture
.hasChildren();
321 * Run the void removeAllChildren() method test.
324 public void testRemoveAllChildren_2() {
325 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
326 fixture
.setToolTip("");
328 fixture
.addChild(new TraceControlRoot());
329 fixture
.addChild(new TraceControlComponent("child"));
331 fixture
.removeAllChildren();
332 assertFalse(fixture
.hasChildren());
336 * Run the void removeChild(ITraceControlComponent) method test.
339 public void testRemoveChild_1() {
340 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
341 fixture
.setToolTip("");
342 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
344 fixture
.addChild(child
);
345 fixture
.removeChild(child
);
346 assertFalse(fixture
.hasChildren());
350 * Run the void removeChild(ITraceControlComponent) method test.
353 public void testRemoveChild_2() {
354 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
355 fixture
.setToolTip("");
356 fixture
.addChild(new TraceControlRoot());
357 ITraceControlComponent component
= null;
359 fixture
.removeChild(component
);
360 assertTrue(fixture
.hasChildren());
364 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
367 public void testRemoveComponentListener_1() {
368 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
369 fixture
.setToolTip("");
371 ListenerValidator validator
= new ListenerValidator();
372 fixture
.addComponentListener(validator
);
374 // Remove listener and check that validator is not called anymore
375 validator
.initialize();
376 fixture
.removeComponentListener(validator
);
377 TraceControlRoot root
= new TraceControlRoot();
378 fixture
.addChild(root
);
379 assertFalse(validator
.isAddedCalled());
381 fixture
.removeChild(root
);
382 assertFalse(validator
.isRemovedCalled());
384 fixture
.fireComponentChanged(fixture
);
385 assertFalse(validator
.isChangedCalled());
389 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
392 public void testRemoveComponentListener_2() {
393 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
394 fixture
.setToolTip("");
395 fixture
.addChild(new TraceControlRoot());
396 ITraceControlComponentChangedListener listener
= new ControlView();
398 fixture
.removeComponentListener(listener
);
403 * Run the void setChildren(List<ITraceControlComponent>)/ITraceControlComponent[] getChildren() method test.
406 public void testGetAndSetChildren() {
407 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
408 fixture
.setToolTip("");
409 List
<ITraceControlComponent
> children
= new LinkedList
<ITraceControlComponent
>();
410 children
.add(new TraceControlComponent("child1"));
411 children
.add(new TraceControlComponent("child2"));
413 fixture
.setChildren(children
);
415 ITraceControlComponent
[] result
= fixture
.getChildren();
416 assertEquals(2, result
.length
);
417 assertEquals("child1", result
[0].getName());
418 assertEquals("child2", result
[1].getName());
422 * Run the void String getName()/setName(String) method tests.
425 public void testGetAndSetName() {
426 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
427 fixture
.setToolTip("");
428 fixture
.addChild(new TraceControlRoot());
429 String name
= "node";
431 fixture
.setName(name
);
432 assertEquals(name
,fixture
.getName());
437 * Run the void ITraceControlComponent getParent()/setParent(ITraceControlComponent) method tests.
440 public void testGetAndSetParent() {
441 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
442 fixture
.setToolTip("");
443 fixture
.addChild(new TraceControlRoot());
444 ITraceControlComponent parent
= new TraceControlRoot();
445 parent
.addChild(fixture
);
447 fixture
.setParent(parent
);
448 ITraceControlComponent retrievedParent
= fixture
.getParent();
449 assertNotNull(retrievedParent
);
450 assertEquals(parent
.getName(), retrievedParent
.getName());
451 assertEquals(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
, retrievedParent
.getName());
452 assertEquals(null, retrievedParent
.getParent());
453 assertEquals(true, retrievedParent
.hasChildren());
457 * Run the void TargetNodeState getTargetNodeState()/etTargetNodeState(TargetNodeState) method tests.
460 public void testGetAndSetTargetNodeState_1() {
461 TraceControlComponent parent
= new TraceControlComponent("parent") {
462 private TargetNodeState fState
;
465 public void setTargetNodeState(TargetNodeState state
) {
470 public TargetNodeState
getTargetNodeState() {
475 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
476 parent
.addChild(fixture
);
478 fixture
.setToolTip("");
479 TargetNodeState state
= TargetNodeState
.CONNECTED
;
481 fixture
.setTargetNodeState(state
);
482 TargetNodeState result
= fixture
.getTargetNodeState();
484 assertNotNull(result
);
485 assertEquals(state
, result
);
487 assertEquals(state
, fixture
.getParent().getTargetNodeState());
488 assertEquals("CONNECTED", result
.name());
489 assertEquals("CONNECTED", result
.toString());
490 assertEquals(2, result
.ordinal());
492 fixture
.setTargetNodeState(TargetNodeState
.DISCONNECTED
);
493 result
= fixture
.getTargetNodeState();
494 assertNotNull(result
);
495 assertEquals("DISCONNECTED", result
.name());
496 assertEquals("DISCONNECTED", result
.toString());
497 assertEquals(0, result
.ordinal());
499 state
= TargetNodeState
.CONNECTING
;
501 fixture
.setTargetNodeState(state
);
502 result
= fixture
.getTargetNodeState();
503 assertNotNull(result
);
504 assertEquals("CONNECTING", result
.name());
505 assertEquals("CONNECTING", result
.toString());
506 assertEquals(3, result
.ordinal());
508 fixture
.setTargetNodeState(TargetNodeState
.DISCONNECTING
);
509 result
= fixture
.getTargetNodeState();
510 assertNotNull(result
);
511 assertEquals("DISCONNECTING", result
.name());
512 assertEquals("DISCONNECTING", result
.toString());
513 assertEquals(1, result
.ordinal());
518 * Run the void setToolTip(String) method test.
521 public void testGetSndSetToolTip() {
522 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
523 fixture
.setToolTip("This is a tooltip");
524 fixture
.addChild(new TraceControlRoot());
526 String result
= fixture
.getToolTip();
528 assertEquals("This is a tooltip", result
);