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