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
.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
;
44 * The class <code>TraceControlComponentTest</code> contains tests for the class
45 * <code>{@link TraceControlComponent}</code>.
47 public class TraceControlComponentTest
{
49 private IRemoteConnection fHost
= TmfRemoteConnectionFactory
.getLocalConnection();
52 * Run the TraceControlComponent(String) constructor test.
55 public void testTraceControlComponent_1() {
59 TraceControlComponent result
= new TraceControlComponent(name
);
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());
71 * Run the TraceControlComponent(String,ITraceControlComponent) constructor test.
74 public void testTraceControlComponent_2() {
77 ITraceControlComponent parent
= new TraceControlRoot();
78 TraceControlComponent result
= new TraceControlComponent(name
, parent
);
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());
89 * Run the void addChild(ITraceControlComponent) method 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
);
99 ITraceControlComponent child
= fixture
.getChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
100 assertNotNull(child
);
101 assertEquals(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
, child
.getName());
105 * Run the void addChild(ITraceControlComponent) method test.
108 public void testAddAndGetChild2() {
109 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
110 fixture
.setToolTip("");
111 ITraceControlComponent component
= null;
113 fixture
.addChild(component
);
114 assertFalse(fixture
.hasChildren());
118 * Run the void addComponentListener(ITraceControlComponentChangedListener) method test.
121 public void testAddComponentListener_1() {
122 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
123 fixture
.setToolTip("");
125 ListenerValidator validator
= new ListenerValidator();
126 fixture
.addComponentListener(validator
);
128 TraceControlRoot root
= new TraceControlRoot();
129 fixture
.addChild(root
);
130 assertTrue(validator
.isAddedCalled());
132 fixture
.removeChild(root
);
133 assertTrue(validator
.isRemovedCalled());
135 fixture
.fireComponentChanged(fixture
);
136 assertTrue(validator
.isChangedCalled());
140 * Run the boolean containsChild(String) method 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";
149 boolean result
= fixture
.containsChild(name
);
151 assertEquals(false, result
);
155 * Run the boolean containsChild(String) method test.
158 public void testContainsChild_2() {
159 TraceControlComponent fixture
= new TraceControlComponent("name", new TraceControlRoot());
160 fixture
.setToolTip("");
162 boolean result
= fixture
.containsChild(TraceControlRoot
.TRACE_CONTROL_ROOT_NAME
);
164 assertEquals(false, result
);
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
173 public void testFireCompenentUpdated() {
174 ITraceControlComponent parent
= new TraceControlRoot();
176 TraceControlComponent fixture
= new TraceControlComponent("node", parent
);
177 fixture
.setToolTip("");
179 ITraceControlComponent component
= new TraceControlComponent("child");
180 fixture
.addChild(component
);
182 ListenerValidator validator
= new ListenerValidator();
183 fixture
.addComponentListener(validator
);
185 fixture
.fireComponentAdded(parent
, component
);
186 assertTrue(validator
.isAddedCalled());
187 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
188 assertEquals(component
.getName(), validator
.getSavedChild().getName());
190 validator
.initialize();
192 fixture
.fireComponentRemoved(parent
, component
);
193 assertTrue(validator
.isRemovedCalled());
194 assertEquals(parent
.getName(), validator
.getSavedParent().getName());
195 assertEquals(component
.getName(), validator
.getSavedChild().getName());
197 validator
.initialize();
198 fixture
.fireComponentChanged(fixture
);
199 assertTrue(validator
.isChangedCalled());
200 assertEquals(fixture
.getName(), validator
.getSavedComponent().getName());
204 * Run the Object getAdapter(Class) method 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;
213 Object result
= fixture
.getAdapter(adapter
);
215 assertEquals(null, result
);
219 * Run the ITraceControlComponent[] getChildren() method test.
222 public void testGetChildren_1() {
223 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
224 fixture
.setToolTip("");
225 fixture
.addChild(new TraceControlRoot());
227 ITraceControlComponent
[] result
= fixture
.getChildren();
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());
241 * Run the ILttngControlService getControlService()/setControlService()
244 * @throws ExecutionException
245 * Would fail the test
248 public void testGetAndSetControlService_1() throws ExecutionException
{
250 TraceControlComponent parent
= new TraceControlComponent("parent") {
251 ILttngControlService fService
= null;
254 public void setControlService(ILttngControlService service
) {
259 public ILttngControlService
getControlService() {
264 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
265 parent
.addChild(fixture
);
266 fixture
.setToolTip("");
267 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
268 fixture
.addChild(child
);
270 ILttngControlService result
= fixture
.getControlService();
271 assertEquals(null, result
);
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
);
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
);
286 result
= fixture
.getChildren()[0].getControlService();
287 assertNotNull(service
);
288 assertEquals(service
, result
);
292 * Run the Image getImage() method test.
295 public void testGetImage_1() {
296 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
297 fixture
.setToolTip("");
298 fixture
.addChild(new TraceControlRoot());
300 Image result
= fixture
.getImage();
301 assertEquals(null, result
);
303 fixture
.setImage(PlatformUI
.getWorkbench().getSharedImages().getImage(ISharedImages
.IMG_OBJ_FOLDER
));
304 assertNotNull(fixture
.getImage());
308 * Run the boolean hasChildren() method test.
311 public void testHasChildren_1() {
312 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
313 fixture
.setToolTip("");
314 fixture
.addChild(new TraceControlRoot());
316 boolean result
= fixture
.hasChildren();
322 * Run the boolean hasChildren() method test.
325 public void testHasChildren_2() {
326 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
327 fixture
.setToolTip("");
329 boolean result
= fixture
.hasChildren();
335 * Run the void removeAllChildren() method test.
338 public void testRemoveAllChildren_2() {
339 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
340 fixture
.setToolTip("");
342 fixture
.addChild(new TraceControlRoot());
343 fixture
.addChild(new TraceControlComponent("child"));
345 fixture
.removeAllChildren();
346 assertFalse(fixture
.hasChildren());
350 * Run the void removeChild(ITraceControlComponent) method test.
353 public void testRemoveChild_1() {
354 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
355 fixture
.setToolTip("");
356 TraceControlComponent child
= new TraceControlComponent("child", fixture
);
358 fixture
.addChild(child
);
359 fixture
.removeChild(child
);
360 assertFalse(fixture
.hasChildren());
364 * Run the void removeChild(ITraceControlComponent) method 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;
373 fixture
.removeChild(component
);
374 assertTrue(fixture
.hasChildren());
378 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method test.
381 public void testRemoveComponentListener_1() {
382 TraceControlComponent fixture
= new TraceControlComponent("", (ITraceControlComponent
) null);
383 fixture
.setToolTip("");
385 ListenerValidator validator
= new ListenerValidator();
386 fixture
.addComponentListener(validator
);
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());
395 fixture
.removeChild(root
);
396 assertFalse(validator
.isRemovedCalled());
398 fixture
.fireComponentChanged(fixture
);
399 assertFalse(validator
.isChangedCalled());
403 * Run the void removeComponentListener(ITraceControlComponentChangedListener) method 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();
412 fixture
.removeComponentListener(listener
);
417 * Run the void setChildren(List<ITraceControlComponent>)/ITraceControlComponent[] getChildren() method 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"));
427 fixture
.setChildren(children
);
429 ITraceControlComponent
[] result
= fixture
.getChildren();
430 assertEquals(2, result
.length
);
431 assertEquals("child1", result
[0].getName());
432 assertEquals("child2", result
[1].getName());
436 * Run the void String getName()/setName(String) method tests.
439 public void testGetAndSetName() {
440 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
441 fixture
.setToolTip("");
442 fixture
.addChild(new TraceControlRoot());
443 String name
= "node";
445 fixture
.setName(name
);
446 assertEquals(name
,fixture
.getName());
451 * Run the void ITraceControlComponent getParent()/setParent(ITraceControlComponent) method tests.
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
);
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());
471 * Run the void TargetNodeState getTargetNodeState()/etTargetNodeState(TargetNodeState) method tests.
474 public void testGetAndSetTargetNodeState_1() {
475 TraceControlComponent parent
= new TraceControlComponent("parent") {
476 private TargetNodeState fState
;
479 public void setTargetNodeState(TargetNodeState state
) {
484 public TargetNodeState
getTargetNodeState() {
489 TraceControlComponent fixture
= new TraceControlComponent("", parent
);
490 parent
.addChild(fixture
);
492 fixture
.setToolTip("");
493 TargetNodeState state
= TargetNodeState
.CONNECTED
;
495 fixture
.setTargetNodeState(state
);
496 TargetNodeState result
= fixture
.getTargetNodeState();
498 assertNotNull(result
);
499 assertEquals(state
, result
);
501 assertEquals(state
, fixture
.getParent().getTargetNodeState());
502 assertEquals("CONNECTED", result
.name());
503 assertEquals("CONNECTED", result
.toString());
504 assertEquals(2, result
.ordinal());
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());
513 state
= TargetNodeState
.CONNECTING
;
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());
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());
532 * Run the void setToolTip(String) method test.
535 public void testGetSndSetToolTip() {
536 TraceControlComponent fixture
= new TraceControlComponent("", new TraceControlRoot());
537 fixture
.setToolTip("This is a tooltip");
538 fixture
.addChild(new TraceControlRoot());
540 String result
= fixture
.getToolTip();
542 assertEquals("This is a tooltip", result
);