2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.yang.data.impl;
10 import java.io.ByteArrayOutputStream;
11 import java.io.PrintStream;
13 import java.util.Date;
14 import java.util.List;
17 import org.junit.Assert;
18 import org.junit.Before;
19 import org.junit.Test;
20 import org.opendaylight.controller.yang.common.QName;
21 import org.opendaylight.controller.yang.data.api.CompositeNode;
22 import org.opendaylight.controller.yang.data.api.Node;
23 import org.opendaylight.controller.yang.data.api.SimpleNode;
24 import org.opendaylight.controller.yang.model.api.ListSchemaNode;
25 import org.opendaylight.controller.yang.model.api.SchemaContext;
26 import org.w3c.dom.Document;
29 * @author michal.rehak
32 public class NodeUtilsTest {
35 private CompositeNode network;
41 public void setUp() throws Exception {
43 new URI("urn:ietf:params:xml:ns:netconf:base:1.0"),
44 new Date(42), "yang-data-impl-mutableTest");
45 network = NodeHelper.buildTestConfigTree(qName);
49 * Test method for {@link org.opendaylight.controller.yang.data.impl.NodeUtils#buildPath(org.opendaylight.controller.yang.data.api.Node)}.
53 public void testBuildPath() throws Exception {
54 SimpleNode<?> needle = network.getCompositesByName("topologies").iterator().next()
55 .getCompositesByName("topology").iterator().next()
56 .getSimpleNodesByName("topology-id").iterator().next();
57 String breadCrumbs = NodeUtils.buildPath(needle);
59 Assert.assertEquals("network.topologies.topology.topology-id", breadCrumbs);
63 * Test method for {@link org.opendaylight.controller.yang.data.impl.NodeUtils#buildShadowDomTree(org.opendaylight.controller.yang.data.api.CompositeNode)}.
67 public void testBuildShadowDomTree() throws Exception {
68 Document networkShadow = NodeUtils.buildShadowDomTree(network);
69 ByteArrayOutputStream actual = new ByteArrayOutputStream();
70 NodeHelper.dumpDoc(networkShadow, new PrintStream(actual));
72 Assert.assertEquals(2760, new String(actual.toByteArray()).length());
76 * Test method for {@link org.opendaylight.controller.yang.data.impl.NodeUtils#findNodeByXpath(org.w3c.dom.Document, java.lang.String)}.
80 public void testFindNodeByXpath() throws Exception {
81 Document networkShadow = NodeUtils.buildShadowDomTree(network);
82 SimpleNode<String> needle = NodeUtils.findNodeByXpath(networkShadow,
83 "//node[node-id='nodeId_19']//termination-point[2]/tp-id");
84 Assert.assertNotNull(needle);
85 Assert.assertEquals("tpId_18", needle.getValue());
89 * Test method for {@link org.opendaylight.controller.yang.data.impl.NodeUtils#buildNodeMap(java.util.List)}.
92 public void testBuildNodeMap() {
93 CompositeNode topology = network.getCompositesByName("topologies").iterator().next()
94 .getCompositesByName("topology").iterator().next();
96 Map<QName, List<Node<?>>> nodeMap = NodeUtils.buildNodeMap(topology.getChildren());
97 Assert.assertEquals(3, nodeMap.size());
101 * Test method for {@link org.opendaylight.controller.yang.data.impl.NodeUtils#buildMapOfListNodes(org.opendaylight.controller.yang.model.api.SchemaContext)}.
104 public void testBuildMapOfListNodes() {
105 SchemaContext schemaCtx = NodeHelper.loadSchemaContext();
106 Map<String, ListSchemaNode> mapOfLists = NodeUtils.buildMapOfListNodes(schemaCtx);
107 Assert.assertEquals(5, mapOfLists.size());