1 /*******************************************************************************
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.scenegraph.tests;
14 import static org.junit.Assert.assertNull;
15 import static org.junit.Assert.assertSame;
17 import java.util.UUID;
19 import org.junit.Test;
20 import org.simantics.scenegraph.INode;
21 import org.simantics.scenegraph.ParentNode;
22 import org.simantics.scenegraph.g2d.G2DParentNode;
23 import org.simantics.scenegraph.g2d.G2DSceneGraph;
24 import org.simantics.scenegraph.g2d.nodes.DataNode;
25 import org.simantics.scenegraph.g2d.nodes.NavigationNode;
29 * @author Tuukka Lehtonen
31 public class GetRootNodeTest {
33 G2DSceneGraph root = new G2DSceneGraph();
35 <T extends INode> T addNode(ParentNode<?> parent, String id, Class<T> clazz) {
36 T node = parent.addNode(id, clazz);
40 <T extends INode> T addNode(ParentNode<?> parent, Class<T> clazz) {
41 return addNode(parent, UUID.randomUUID().toString(), clazz);
45 public void testGetRootNode() throws Exception {
46 NavigationNode nav = addNode(root, NavigationNode.class);
47 DataNode data = addNode(root, DataNode.class);
48 G2DParentNode elements = addNode(nav, G2DParentNode.class);
49 G2DParentNode ghosts = addNode(nav, G2DParentNode.class);
51 G2DParentNode e1 = addNode(elements, G2DParentNode.class);
52 G2DParentNode e2 = addNode(elements, G2DParentNode.class);
53 G2DParentNode e3 = addNode(elements, G2DParentNode.class);
54 G2DParentNode e1_1 = addNode(e1, G2DParentNode.class);
55 G2DParentNode e1_2 = addNode(e1, G2DParentNode.class);
56 G2DParentNode e1_1_1 = addNode(e1_1, G2DParentNode.class);
57 G2DParentNode e2_1 = addNode(e2, G2DParentNode.class);
58 G2DParentNode e3_1 = addNode(e3, G2DParentNode.class);
59 G2DParentNode e3_1_1 = addNode(e3_1, G2DParentNode.class);
60 G2DParentNode e3_1_1_1 = addNode(e3_1_1, G2DParentNode.class);
62 assertSame(e3_1_1_1.getRootNode(), root);
63 assertSame(nav.getRootNode(), root);
64 assertSame(e3_1.getRootNode(), root);
65 assertSame(e3_1_1.getRootNode(), root);
66 assertSame(e3_1.getRootNode(), root);
67 assertSame(e2.getRootNode(), root);
68 assertSame(e2_1.getRootNode(), root);
69 assertSame(e1.getRootNode(), root);
70 assertSame(e1_1_1.getRootNode(), root);
71 assertSame(e1_1.getRootNode(), root);
72 assertSame(e1_2.getRootNode(), root);
73 assertSame(data.getRootNode(), root);
74 assertSame(ghosts.getRootNode(), root);
77 assertNull(ghosts.getRootNode());
79 assertNull(data.getRootNode());
81 assertNull(e1.getRootNode());
83 assertNull(e2_1.getRootNode());
85 assertNull(e2.getRootNode());
87 assertNull(e3_1_1_1.getRootNode());
88 assertNull(e3_1_1.getRootNode());
89 assertNull(e3_1.getRootNode());
90 assertNull(e3.getRootNode());