1 /**********************************************************************
2 * Copyright (c) 2012, 2014 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
.tracecompass
.lttng2
.control
.ui
.tests
.model
.component
;
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
;
21 import java
.util
.LinkedList
;
22 import java
.util
.List
;
24 import org
.eclipse
.core
.commands
.ExecutionException
;
25 import org
.eclipse
.swt
.graphics
.Image
;
26 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.core
.model
.TargetNodeState
;
27 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.stubs
.service
.TestRemoteSystemProxy
;
28 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.ControlView
;
29 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.ITraceControlComponent
;
30 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.ITraceControlComponentChangedListener
;
31 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceControlComponent
;
32 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.model
.impl
.TraceControlRoot
;
33 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.ILttngControlService
;
34 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.LTTngControlService
;
35 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.LTTngControlServiceConstants
;
36 import org
.eclipse
.tracecompass
.internal
.lttng2
.control
.ui
.views
.service
.LTTngControlServiceMI
;
37 import org
.eclipse
.ui
.ISharedImages
;
38 import org
.eclipse
.ui
.PlatformUI
;
39 import org
.junit
.Test
;
42 * The class <code>TraceControlComponentTest</code> contains tests for the class
43 * <code>{@link TraceControlComponent}</code>.
45 public class TraceControlComponentTest
{
48 * Run the TraceControlComponent(String) constructor test.
51 public void testTraceControlComponent_1() {
55 TraceControlComponent result
= new TraceControlComponent(name
);
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());
67 * Run the TraceControlComponent(String,ITraceControlComponent) constructor test.
70 public void testTraceControlComponent_2() {
73 ITraceControlComponent parent
= new TraceControlRoot();
74 TraceControlComponent result
= new TraceControlComponent(name
, parent
);
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());
85 * Run the void addChild(ITraceControlComponent) method 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
);
95 ITraceControlComponent child
= fixture
.getChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
97 assertEquals(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
, child
.getName());
101 * Run the void addChild(ITraceControlComponent) method test.
104 public void testAddAndGetChild2() {
105 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
106 fixture
.setToolTip("");
107 ITraceControlComponent component
= null;
109 fixture
.addChild(component
);
110 assertFalse(fixture
.hasChildren());
114 * Run the void addComponentListener(ITraceControlComponentChangedListener) method test.
117 public void testAddComponentListener_1() {
118 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
119 fixture
.setToolTip("");
121 ListenerValidator validator
= new ListenerValidator();
122 fixture
.addComponentListener(validator
);
124 TraceControlRoot root
= new TraceControlRoot();
125 fixture
.addChild(root
);
126 assertTrue(validator
.isAddedCalled());
128 fixture
.removeChild(root
);
129 assertTrue(validator
.isRemovedCalled());
131 fixture
.fireComponentChanged(fixture
);
132 assertTrue(validator
.isChangedCalled());
136 * Run the boolean containsChild(String) method 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";
145 boolean result
= fixture
.containsChild(name
);
147 assertEquals(false, result
);
151 * Run the boolean containsChild(String) method test.
154 public void testContainsChild_2() {
155 TraceControlComponent fixture
= new TraceControlComponent("name", new TraceControlRoot());
156 fixture
.setToolTip("");
158 boolean result
= fixture
.containsChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
160 assertEquals(false, result
);
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
169 public void testFireCompenentUpdated() {
170 ITraceControlComponent parent
= new TraceControlRoot();
172 TraceControlComponent fixture
= new TraceControlComponent("node", parent
);
173 fixture
.setToolTip("");
175 ITraceControlComponent component
= new TraceControlComponent("child");
176 fixture
.addChild(component
);
178 ListenerValidator validator
= new ListenerValidator();
179 fixture
.addComponentListener(validator
);
181 fixture
.fireComponentAdded(parent
, component
);
182 assertTrue(validator
.isAddedCalled());
183 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
184 assertEquals(component
.getName(), validator
.getSavedChild().getName());
186 validator
.initialize();
188 fixture
.fireComponentRemoved(parent
, component
);
189 assertTrue(validator
.isRemovedCalled());
190 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
191 assertEquals(component
.getName(), validator
.getSavedChild().getName());
193 validator
.initialize();
194 fixture
.fireComponentChanged(fixture
);
195 assertTrue(validator
.isChangedCalled());
196 assertEquals(fixture
.getName(), validator
.getSavedComponent().getName());
200 * Run the Object getAdapter(Class) method 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;
209 Object result
= fixture
.getAdapter(adapter
);
211 assertEquals(null, result
);
215 * Run the ITraceControlComponent[] getChildren() method test.
218 public void testGetChildren_1() {
219 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
220 fixture
.setToolTip("");
221 fixture
.addChild(new TraceControlRoot());
223 ITraceControlComponent
[] result
= fixture
.getChildren();
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());
237 * Run the ILttngControlService getControlService()/setControlService()
240 * @throws ExecutionException
241 * Would fail the test
244 public void testGetAndSetControlService_1() throws ExecutionException
{
246 TraceControlComponent parent
= new TraceControlComponent("parent") {
247 ILttngControlService fService
= null;
250 public void setControlService(ILttngControlService service
) {
255 public ILttngControlService
getControlService() {
260 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
261 parent
.addChild(fixture
);
262 fixture
.setToolTip("");
263 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
264 fixture
.addChild(child
);
266 ILttngControlService result
= fixture
.getControlService();
267 assertEquals(null, result
);
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
);
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
);
282 result
= fixture
.getChildren()[0].getControlService();
283 assertNotNull(service
);
284 assertEquals(service
, result
);
288 * Run the Image getImage() method test.
291 public void testGetImage_1() {
292 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
293 fixture
.setToolTip("");
294 fixture
.addChild(new TraceControlRoot());
296 Image result
= fixture
.getImage();
297 assertEquals(null, result
);
299 fixture
.setImage(PlatformUI
.getWorkbench().getSharedImages().getImage(ISharedImages
.IMG_OBJ_FOLDER
));
300 assertNotNull(fixture
.getImage());
304 * Run the boolean hasChildren() method test.
307 public void testHasChildren_1() {
308 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
309 fixture
.setToolTip("");
310 fixture
.addChild(new TraceControlRoot());
312 boolean result
= fixture
.hasChildren();
318 * Run the boolean hasChildren() method test.
321 public void testHasChildren_2() {
322 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
323 fixture
.setToolTip("");
325 boolean result
= fixture
.hasChildren();
331 * Run the void removeAllChildren() method test.
334 public void testRemoveAllChildren_2() {
335 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
336 fixture
.setToolTip("");
338 fixture
.addChild(new TraceControlRoot());
339 fixture
.addChild(new TraceControlComponent("child"));
341 fixture
.removeAllChildren();
342 assertFalse(fixture
.hasChildren());
346 * Run the void removeChild(ITraceControlComponent) method test.
349 public void testRemoveChild_1() {
350 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
351 fixture
.setToolTip("");
352 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
354 fixture
.addChild(child
);
355 fixture
.removeChild(child
);
356 assertFalse(fixture
.hasChildren());
360 * Run the void removeChild(ITraceControlComponent) method 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;
369 fixture
.removeChild(component
);
370 assertTrue(fixture
.hasChildren());
374 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
377 public void testRemoveComponentListener_1() {
378 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
379 fixture
.setToolTip("");
381 ListenerValidator validator
= new ListenerValidator();
382 fixture
.addComponentListener(validator
);
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());
391 fixture
.removeChild(root
);
392 assertFalse(validator
.isRemovedCalled());
394 fixture
.fireComponentChanged(fixture
);
395 assertFalse(validator
.isChangedCalled());
399 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method 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();
408 fixture
.removeComponentListener(listener
);
413 * Run the void setChildren(List<ITraceControlComponent>)/ITraceControlComponent[] getChildren() method 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"));
423 fixture
.setChildren(children
);
425 ITraceControlComponent
[] result
= fixture
.getChildren();
426 assertEquals(2, result
.length
);
427 assertEquals("child1", result
[0].getName());
428 assertEquals("child2", result
[1].getName());
432 * Run the void String getName()/setName(String) method tests.
435 public void testGetAndSetName() {
436 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
437 fixture
.setToolTip("");
438 fixture
.addChild(new TraceControlRoot());
439 String name
= "node";
441 fixture
.setName(name
);
442 assertEquals(name
,fixture
.getName());
447 * Run the void ITraceControlComponent getParent()/setParent(ITraceControlComponent) method tests.
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
);
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());
467 * Run the void TargetNodeState getTargetNodeState()/etTargetNodeState(TargetNodeState) method tests.
470 public void testGetAndSetTargetNodeState_1() {
471 TraceControlComponent parent
= new TraceControlComponent("parent") {
472 private TargetNodeState fState
;
475 public void setTargetNodeState(TargetNodeState state
) {
480 public TargetNodeState
getTargetNodeState() {
485 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
486 parent
.addChild(fixture
);
488 fixture
.setToolTip("");
489 TargetNodeState state
= TargetNodeState
.CONNECTED
;
491 fixture
.setTargetNodeState(state
);
492 TargetNodeState result
= fixture
.getTargetNodeState();
494 assertNotNull(result
);
495 assertEquals(state
, result
);
497 assertEquals(state
, fixture
.getParent().getTargetNodeState());
498 assertEquals("CONNECTED", result
.name());
499 assertEquals("CONNECTED", result
.toString());
500 assertEquals(2, result
.ordinal());
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());
509 state
= TargetNodeState
.CONNECTING
;
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());
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());
528 * Run the void setToolTip(String) method test.
531 public void testGetSndSetToolTip() {
532 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
533 fixture
.setToolTip("This is a tooltip");
534 fixture
.addChild(new TraceControlRoot());
536 String result
= fixture
.getToolTip();
538 assertEquals("This is a tooltip", result
);