blob: 933451d08746eef0367be74a35a8c4ac34c77e62 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Mathieu Denis <mathieu.denis@polymtl.ca> - Initial design and implementation
* Bernd Hufmann - Fixed warnings
* Alexandre Montplaisir - Port to JUnit4
*******************************************************************************/
package org.eclipse.tracecompass.tmf.ui.tests.statistics;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTree;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTreeManager;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode;
import org.junit.Before;
import org.junit.Test;
/**
* TmfStatisticsTreeRootFactory Test Case.
*/
public class TmfStatisticsTreeManagerTest {
// ------------------------------------------------------------------------
// Fields
// ------------------------------------------------------------------------
private TmfStatisticsTree fStatisticsData1;
private TmfStatisticsTree fStatisticsData2;
private TmfStatisticsTree fStatisticsData3;
private String fDataKey1 = "key1";
private String fDataKey2 = "key2";
private String fDataKey3 = "key3";
// ------------------------------------------------------------------------
// Housekeeping
// ------------------------------------------------------------------------
/**
* Initialization
*/
@Before
public void setUp() {
fStatisticsData1 = new TmfStatisticsTree();
fStatisticsData2 = new TmfStatisticsTree();
fStatisticsData3 = new TmfStatisticsTree();
TmfStatisticsTreeManager.addStatsTreeRoot(fDataKey1, fStatisticsData1);
TmfStatisticsTreeManager.addStatsTreeRoot(fDataKey2, fStatisticsData2);
TmfStatisticsTreeManager.addStatsTreeRoot(fDataKey2, fStatisticsData3);
}
/**
* Clean the statistics tree
*/
private static void removeStatsTreeRoot() {
TmfStatisticsTreeManager.removeAll();
}
/**
* Test adding of statistics tree root. It should not throw exceptions
*/
@Test
public void testaddStatsTreeRoot() {
removeStatsTreeRoot();
try {
assertNull(TmfStatisticsTreeManager.addStatsTreeRoot(null, null));
assertNull(TmfStatisticsTreeManager.addStatsTreeRoot(null, fStatisticsData1));
assertNull(TmfStatisticsTreeManager.addStatsTreeRoot(fDataKey1, null));
assertNull(TmfStatisticsTreeManager.getStatTreeRoot(fDataKey1));
TmfStatisticsTreeNode returnRootNode = TmfStatisticsTreeManager.addStatsTreeRoot(fDataKey1, fStatisticsData1);
assertSame(fStatisticsData1, TmfStatisticsTreeManager.getStatTree(fDataKey1));
assertSame(fStatisticsData1.getRootNode(), returnRootNode);
// Overwriting the value
returnRootNode = TmfStatisticsTreeManager.addStatsTreeRoot(fDataKey1, fStatisticsData2);
assertSame(fStatisticsData2, TmfStatisticsTreeManager.getStatTree(fDataKey1));
assertSame(fStatisticsData2.getRootNode(), returnRootNode);
// Success
} catch(Exception e) {
fail("AddStatsTreeRoot");
}
}
// ------------------------------------------------------------------------
// get
// ------------------------------------------------------------------------
/**
* Test getting of statistics tree root.
*/
@Test
public void testGetStatTreeRoot() {
TmfStatisticsTreeNode value1 = TmfStatisticsTreeManager.getStatTreeRoot(fDataKey1);
TmfStatisticsTreeNode value2 = TmfStatisticsTreeManager.getStatTreeRoot(fDataKey2);
TmfStatisticsTreeNode value3 = TmfStatisticsTreeManager.getStatTreeRoot(fDataKey1);
assertNotSame("getStatTreeRoot", value1, value2);
assertNotSame("getStatTreeRoot", value2, value3);
assertSame("getStatTreeRoot", value1, value3);
assertNull("getStatTreeRoot", TmfStatisticsTreeManager.getStatTreeRoot(null));
}
/**
* Test getting statistics tree.
*/
@Test
public void testGetStatTree() {
TmfStatisticsTree value1 = TmfStatisticsTreeManager.getStatTree(fDataKey1);
TmfStatisticsTree value2 = TmfStatisticsTreeManager.getStatTree(fDataKey2);
TmfStatisticsTree value3 = TmfStatisticsTreeManager.getStatTree(fDataKey1);
assertNotSame("getStatTree", value1, value2);
assertNotSame("getStatTree", value2, value3);
assertSame("getStatTree", value1, value3);
assertNull("getStatTreeRoot", TmfStatisticsTreeManager.getStatTree(null));
}
// ------------------------------------------------------------------------
// contains
// ------------------------------------------------------------------------
/**
* Test checking for tree root existence.
*/
@Test
public void testContainsTreeRoot() {
assertTrue("containsTreeRoot", TmfStatisticsTreeManager.containsTreeRoot(fDataKey1));
assertTrue("containsTreeRoot", TmfStatisticsTreeManager.containsTreeRoot(fDataKey2));
assertFalse("containsTreeRoot", TmfStatisticsTreeManager.containsTreeRoot(null));
}
// ------------------------------------------------------------------------
// remove
// ------------------------------------------------------------------------
/**
* Test removal of statistics tree node.
*/
@Test
public void testRemoveStatTreeRoot() {
TmfStatisticsTreeManager.removeStatTreeRoot(fDataKey1);
assertNull("removeStatTreeRoot", TmfStatisticsTreeManager.getStatTree(fDataKey1));
try {
// Trying to remove the same branch from the tree.
TmfStatisticsTreeManager.removeStatTreeRoot(fDataKey1);
TmfStatisticsTreeManager.removeStatTreeRoot(null);
// Success
} catch (Exception e) {
fail("removeStatTreeRoot");
}
}
/**
* Test removal of all root nodes.
*/
@Test
public void testRemoveAll() {
TmfStatisticsTreeManager.removeAll();
assertNull("removeAll", TmfStatisticsTreeManager.getStatTreeRoot(fDataKey2));
assertNull("removeAll", TmfStatisticsTreeManager.getStatTreeRoot(fDataKey3));
}
}