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 public class TraceControlComponentTest
{
43 * Run the TraceControlComponent(String) constructor test.
46 public void testTraceControlComponent_1() {
50 TraceControlComponent result
= new TraceControlComponent(name
);
52 assertNotNull(result
);
53 assertEquals(name
, result
.getName());
54 assertEquals(null, result
.getParent());
55 assertEquals(false, result
.hasChildren());
56 assertEquals(null, result
.getImage());
57 assertEquals(null, result
.getControlService());
58 assertEquals(null, result
.getToolTip());
62 * Run the TraceControlComponent(String,ITraceControlComponent) constructor test.
65 public void testTraceControlComponent_2() {
68 ITraceControlComponent parent
= new TraceControlRoot();
69 TraceControlComponent result
= new TraceControlComponent(name
, parent
);
71 assertNotNull(result
);
72 assertEquals(name
, result
.getName());
73 assertEquals(false, result
.hasChildren());
74 assertEquals(null, result
.getImage());
75 assertEquals(null, result
.getControlService());
76 assertEquals(null, result
.getToolTip());
80 * Run the void addChild(ITraceControlComponent) method test.
83 public void testAddAndGetChild1() {
84 TraceControlComponent fixture
= new TraceControlComponent("node", new TraceControlRoot());
85 fixture
.setToolTip("This is the test node");
86 fixture
.addChild(new TraceControlRoot());
87 ITraceControlComponent component
= new TraceControlRoot();
88 fixture
.addChild(component
);
90 ITraceControlComponent child
= fixture
.getChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
92 assertEquals(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
, child
.getName());
96 * Run the void addChild(ITraceControlComponent) method test.
99 public void testAddAndGetChild2() {
100 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
101 fixture
.setToolTip("");
102 ITraceControlComponent component
= null;
104 fixture
.addChild(component
);
105 assertFalse(fixture
.hasChildren());
109 * Run the void addComponentListener(ITraceControlComponentChangedListener) method test.
112 public void testAddComponentListener_1() {
113 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
114 fixture
.setToolTip("");
116 ListenerValidator validator
= new ListenerValidator();
117 fixture
.addComponentListener(validator
);
119 TraceControlRoot root
= new TraceControlRoot();
120 fixture
.addChild(root
);
121 assertTrue(validator
.isAddedCalled());
123 fixture
.removeChild(root
);
124 assertTrue(validator
.isRemovedCalled());
126 fixture
.fireComponentChanged(fixture
);
127 assertTrue(validator
.isChangedCalled());
131 * Run the boolean containsChild(String) method test.
134 public void testContainsChild_1() {
135 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
136 fixture
.setToolTip("");
137 fixture
.addChild(new TraceControlRoot());
138 String name
= "node";
140 boolean result
= fixture
.containsChild(name
);
142 assertEquals(false, result
);
146 * Run the boolean containsChild(String) method test.
149 public void testContainsChild_2() {
150 TraceControlComponent fixture
= new TraceControlComponent("name", new TraceControlRoot());
151 fixture
.setToolTip("");
153 boolean result
= fixture
.containsChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
155 assertEquals(false, result
);
159 * Run the void fireCompenentAdded(ITraceControlComponent,ITraceControlComponent) method test.
160 * Run the void fireCompenentRemoved(ITraceControlComponent,ITraceControlComponent) method test.
161 * Run the void fireCompenentChanged(ITraceControlComponent) method test
164 public void testFireCompenentUpdated() {
165 ITraceControlComponent parent
= new TraceControlRoot();
167 TraceControlComponent fixture
= new TraceControlComponent("node", parent
);
168 fixture
.setToolTip("");
170 ITraceControlComponent component
= new TraceControlComponent("child");
171 fixture
.addChild(component
);
173 ListenerValidator validator
= new ListenerValidator();
174 fixture
.addComponentListener(validator
);
176 fixture
.fireComponentAdded(parent
, component
);
177 assertTrue(validator
.isAddedCalled());
178 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
179 assertEquals(component
.getName(), validator
.getSavedChild().getName());
181 validator
.initialize();
183 fixture
.fireComponentRemoved(parent
, component
);
184 assertTrue(validator
.isRemovedCalled());
185 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
186 assertEquals(component
.getName(), validator
.getSavedChild().getName());
188 validator
.initialize();
189 fixture
.fireComponentChanged(fixture
);
190 assertTrue(validator
.isChangedCalled());
191 assertEquals(fixture
.getName(), validator
.getSavedComponent().getName());
195 * Run the Object getAdapter(Class) method test.
198 public void testGetAdapter() {
199 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
200 fixture
.setToolTip("");
201 fixture
.addChild(new TraceControlRoot());
202 Class
<Object
> adapter
= Object
.class;
204 Object result
= fixture
.getAdapter(adapter
);
206 assertEquals(null, result
);
210 * Run the ITraceControlComponent[] getChildren() method test.
213 public void testGetChildren_1() {
214 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
215 fixture
.setToolTip("");
216 fixture
.addChild(new TraceControlRoot());
218 ITraceControlComponent
[] result
= fixture
.getChildren();
220 assertNotNull(result
);
221 assertEquals(1, result
.length
);
222 assertNotNull(result
[0]);
223 assertEquals("trace_control_root", result
[0].getName());
224 assertEquals(null, result
[0].getParent());
225 assertEquals(false, result
[0].hasChildren());
226 assertEquals(null, result
[0].getImage());
227 assertEquals(null, result
[0].getControlService());
228 assertEquals(null, result
[0].getToolTip());
232 * Run the ILttngControlService getControlService()/setControlService()
235 * @throws ExecutionException
236 * Would fail the test
239 public void testGetAndSetControlService_1() throws ExecutionException
{
241 TraceControlComponent parent
= new TraceControlComponent("parent") {
242 ILttngControlService fService
= null;
245 public void setControlService(ILttngControlService service
) {
250 public ILttngControlService
getControlService() {
255 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
256 parent
.addChild(fixture
);
257 fixture
.setToolTip("");
258 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
259 fixture
.addChild(child
);
261 ILttngControlService result
= fixture
.getControlService();
262 assertEquals(null, result
);
264 TestRemoteSystemProxy proxy
= new TestRemoteSystemProxy();
265 ILttngControlService service
= new LTTngControlService(proxy
.createCommandShell());
266 fixture
.setControlService(service
);
267 result
= fixture
.getControlService();
268 assertNotNull(service
);
269 assertEquals(service
, result
);
271 result
= fixture
.getChildren()[0].getControlService();
272 assertNotNull(service
);
273 assertEquals(service
, result
);
277 * Run the Image getImage() method test.
280 public void testGetImage_1() {
281 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
282 fixture
.setToolTip("");
283 fixture
.addChild(new TraceControlRoot());
285 Image result
= fixture
.getImage();
286 assertEquals(null, result
);
288 fixture
.setImage(PlatformUI
.getWorkbench().getSharedImages().getImage(ISharedImages
.IMG_OBJ_FOLDER
));
289 assertNotNull(fixture
.getImage());
293 * Run the boolean hasChildren() method test.
296 public void testHasChildren_1() {
297 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
298 fixture
.setToolTip("");
299 fixture
.addChild(new TraceControlRoot());
301 boolean result
= fixture
.hasChildren();
307 * Run the boolean hasChildren() method test.
310 public void testHasChildren_2() {
311 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
312 fixture
.setToolTip("");
314 boolean result
= fixture
.hasChildren();
320 * Run the void removeAllChildren() method test.
323 public void testRemoveAllChildren_2() {
324 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
325 fixture
.setToolTip("");
327 fixture
.addChild(new TraceControlRoot());
328 fixture
.addChild(new TraceControlComponent("child"));
330 fixture
.removeAllChildren();
331 assertFalse(fixture
.hasChildren());
335 * Run the void removeChild(ITraceControlComponent) method test.
338 public void testRemoveChild_1() {
339 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
340 fixture
.setToolTip("");
341 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
343 fixture
.addChild(child
);
344 fixture
.removeChild(child
);
345 assertFalse(fixture
.hasChildren());
349 * Run the void removeChild(ITraceControlComponent) method test.
352 public void testRemoveChild_2() {
353 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
354 fixture
.setToolTip("");
355 fixture
.addChild(new TraceControlRoot());
356 ITraceControlComponent component
= null;
358 fixture
.removeChild(component
);
359 assertTrue(fixture
.hasChildren());
363 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
366 public void testRemoveComponentListener_1() {
367 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
368 fixture
.setToolTip("");
370 ListenerValidator validator
= new ListenerValidator();
371 fixture
.addComponentListener(validator
);
373 // Remove listener and check that validator is not called anymore
374 validator
.initialize();
375 fixture
.removeComponentListener(validator
);
376 TraceControlRoot root
= new TraceControlRoot();
377 fixture
.addChild(root
);
378 assertFalse(validator
.isAddedCalled());
380 fixture
.removeChild(root
);
381 assertFalse(validator
.isRemovedCalled());
383 fixture
.fireComponentChanged(fixture
);
384 assertFalse(validator
.isChangedCalled());
388 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
391 public void testRemoveComponentListener_2() {
392 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
393 fixture
.setToolTip("");
394 fixture
.addChild(new TraceControlRoot());
395 ITraceControlComponentChangedListener listener
= new ControlView();
397 fixture
.removeComponentListener(listener
);
402 * Run the void setChildren(List<ITraceControlComponent>)/ITraceControlComponent[] getChildren() method test.
405 public void testGetAndSetChildren() {
406 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
407 fixture
.setToolTip("");
408 List
<ITraceControlComponent
> children
= new LinkedList
<>();
409 children
.add(new TraceControlComponent("child1"));
410 children
.add(new TraceControlComponent("child2"));
412 fixture
.setChildren(children
);
414 ITraceControlComponent
[] result
= fixture
.getChildren();
415 assertEquals(2, result
.length
);
416 assertEquals("child1", result
[0].getName());
417 assertEquals("child2", result
[1].getName());
421 * Run the void String getName()/setName(String) method tests.
424 public void testGetAndSetName() {
425 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
426 fixture
.setToolTip("");
427 fixture
.addChild(new TraceControlRoot());
428 String name
= "node";
430 fixture
.setName(name
);
431 assertEquals(name
,fixture
.getName());
436 * Run the void ITraceControlComponent getParent()/setParent(ITraceControlComponent) method tests.
439 public void testGetAndSetParent() {
440 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
441 fixture
.setToolTip("");
442 fixture
.addChild(new TraceControlRoot());
443 ITraceControlComponent parent
= new TraceControlRoot();
444 parent
.addChild(fixture
);
446 fixture
.setParent(parent
);
447 ITraceControlComponent retrievedParent
= fixture
.getParent();
448 assertNotNull(retrievedParent
);
449 assertEquals(parent
.getName(), retrievedParent
.getName());
450 assertEquals(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
, retrievedParent
.getName());
451 assertEquals(null, retrievedParent
.getParent());
452 assertEquals(true, retrievedParent
.hasChildren());
456 * Run the void TargetNodeState getTargetNodeState()/etTargetNodeState(TargetNodeState) method tests.
459 public void testGetAndSetTargetNodeState_1() {
460 TraceControlComponent parent
= new TraceControlComponent("parent") {
461 private TargetNodeState fState
;
464 public void setTargetNodeState(TargetNodeState state
) {
469 public TargetNodeState
getTargetNodeState() {
474 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
475 parent
.addChild(fixture
);
477 fixture
.setToolTip("");
478 TargetNodeState state
= TargetNodeState
.CONNECTED
;
480 fixture
.setTargetNodeState(state
);
481 TargetNodeState result
= fixture
.getTargetNodeState();
483 assertNotNull(result
);
484 assertEquals(state
, result
);
486 assertEquals(state
, fixture
.getParent().getTargetNodeState());
487 assertEquals("CONNECTED", result
.name());
488 assertEquals("CONNECTED", result
.toString());
489 assertEquals(2, result
.ordinal());
491 fixture
.setTargetNodeState(TargetNodeState
.DISCONNECTED
);
492 result
= fixture
.getTargetNodeState();
493 assertNotNull(result
);
494 assertEquals("DISCONNECTED", result
.name());
495 assertEquals("DISCONNECTED", result
.toString());
496 assertEquals(0, result
.ordinal());
498 state
= TargetNodeState
.CONNECTING
;
500 fixture
.setTargetNodeState(state
);
501 result
= fixture
.getTargetNodeState();
502 assertNotNull(result
);
503 assertEquals("CONNECTING", result
.name());
504 assertEquals("CONNECTING", result
.toString());
505 assertEquals(3, result
.ordinal());
507 fixture
.setTargetNodeState(TargetNodeState
.DISCONNECTING
);
508 result
= fixture
.getTargetNodeState();
509 assertNotNull(result
);
510 assertEquals("DISCONNECTING", result
.name());
511 assertEquals("DISCONNECTING", result
.toString());
512 assertEquals(1, result
.ordinal());
517 * Run the void setToolTip(String) method test.
520 public void testGetSndSetToolTip() {
521 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
522 fixture
.setToolTip("This is a tooltip");
523 fixture
.addChild(new TraceControlRoot());
525 String result
= fixture
.getToolTip();
527 assertEquals("This is a tooltip", result
);