/******************************************************************************* * Copyright (c) 2007, 2010 Association for Decentralized Information Management * in Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * VTT Technical Research Centre of Finland - initial API and implementation *******************************************************************************/ package org.simantics.scenegraph.tests; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import java.util.UUID; import org.junit.Test; import org.simantics.scenegraph.INode; import org.simantics.scenegraph.ParentNode; import org.simantics.scenegraph.g2d.G2DParentNode; import org.simantics.scenegraph.g2d.G2DSceneGraph; import org.simantics.scenegraph.g2d.nodes.DataNode; import org.simantics.scenegraph.g2d.nodes.NavigationNode; /** * @author Tuukka Lehtonen */ public class GetRootNodeTest { G2DSceneGraph root = new G2DSceneGraph(); T addNode(ParentNode parent, String id, Class clazz) { T node = parent.addNode(id, clazz); return node; } T addNode(ParentNode parent, Class clazz) { return addNode(parent, UUID.randomUUID().toString(), clazz); } @Test public void testGetRootNode() throws Exception { NavigationNode nav = addNode(root, NavigationNode.class); DataNode data = addNode(root, DataNode.class); G2DParentNode elements = addNode(nav, G2DParentNode.class); G2DParentNode ghosts = addNode(nav, G2DParentNode.class); G2DParentNode e1 = addNode(elements, G2DParentNode.class); G2DParentNode e2 = addNode(elements, G2DParentNode.class); G2DParentNode e3 = addNode(elements, G2DParentNode.class); G2DParentNode e1_1 = addNode(e1, G2DParentNode.class); G2DParentNode e1_2 = addNode(e1, G2DParentNode.class); G2DParentNode e1_1_1 = addNode(e1_1, G2DParentNode.class); G2DParentNode e2_1 = addNode(e2, G2DParentNode.class); G2DParentNode e3_1 = addNode(e3, G2DParentNode.class); G2DParentNode e3_1_1 = addNode(e3_1, G2DParentNode.class); G2DParentNode e3_1_1_1 = addNode(e3_1_1, G2DParentNode.class); assertSame(e3_1_1_1.getRootNode(), root); assertSame(nav.getRootNode(), root); assertSame(e3_1.getRootNode(), root); assertSame(e3_1_1.getRootNode(), root); assertSame(e3_1.getRootNode(), root); assertSame(e2.getRootNode(), root); assertSame(e2_1.getRootNode(), root); assertSame(e1.getRootNode(), root); assertSame(e1_1_1.getRootNode(), root); assertSame(e1_1.getRootNode(), root); assertSame(e1_2.getRootNode(), root); assertSame(data.getRootNode(), root); assertSame(ghosts.getRootNode(), root); ghosts.remove(); assertNull(ghosts.getRootNode()); data.delete(); assertNull(data.getRootNode()); e1.remove(); assertNull(e1.getRootNode()); e2_1.remove(); assertNull(e2_1.getRootNode()); e2.remove(); assertNull(e2.getRootNode()); e3.remove(); assertNull(e3_1_1_1.getRootNode()); assertNull(e3_1_1.getRootNode()); assertNull(e3_1.getRootNode()); assertNull(e3.getRootNode()); } }