blob: b62ac87bf6455f02dcce65ca6a0ea730e58b956f [file] [log] [blame]
sonu gupta1bb37b82016-11-11 16:51:18 +05301/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2016-present Open Networking Foundation
sonu gupta1bb37b82016-11-11 16:51:18 +05303 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.yms.app.ydt;
18
19import org.junit.Test;
20
21import static org.onosproject.yms.app.ydt.YdtTestUtils.ietfNetwork1Ydt;
22import static org.onosproject.yms.app.ydt.YdtTestUtils.validateLeafContents;
23import static org.onosproject.yms.app.ydt.YdtTestUtils.validateNodeContents;
24import static org.onosproject.yms.app.ydt.YdtTestUtils.walkINTree;
25import static org.onosproject.yms.ydt.YdtContextOperationType.MERGE;
26
27public class IetfNetworkTest {
28
29 private static final String[] EXPECTED = {
30 "Entry Node is yms-ietf-network.",
31 "Entry Node is yms-ietf-network.",
32 "Entry Node is networks.",
33 "Entry Node is network.",
34 "Entry Node is network-id.",
35 "Exit Node is network-id.",
36 "Entry Node is supporting-network.",
37 "Entry Node is network-ref.",
38 "Exit Node is network-ref.",
39 "Exit Node is supporting-network.",
40 "Entry Node is node.",
41 "Entry Node is node-id.",
42 "Exit Node is node-id.",
43 "Entry Node is supporting-node.",
44 "Entry Node is network-ref.",
45 "Exit Node is network-ref.",
46 "Entry Node is node-ref.",
47 "Exit Node is node-ref.",
48 "Exit Node is supporting-node.",
49 "Exit Node is node.",
50 "Exit Node is network.",
51 "Exit Node is networks.",
52 "Entry Node is networks-state.",
53 "Entry Node is network.",
54 "Entry Node is network-ref.",
55 "Exit Node is network-ref.",
56 "Entry Node is server-provided.",
57 "Exit Node is server-provided.",
58 "Exit Node is network.",
59 "Exit Node is networks-state.",
60 "Exit Node is yms-ietf-network.",
61 "Exit Node is yms-ietf-network."
62 };
63
64 /**
65 * Creates and validates ietf network ydt.
66 */
67 @Test
68 public void ietfNetwork1Test() {
69 YangRequestWorkBench ydtBuilder = ietfNetwork1Ydt();
70 validateTree(ydtBuilder);
71 walkINTree(ydtBuilder, EXPECTED);
72 }
73
74 /**
75 * Validates the given built ydt.
76 */
77 private void validateTree(YangRequestWorkBench ydtBuilder) {
78
79 // Assign root node to ydtNode for validating purpose.
80 YdtNode ydtNode = (YdtNode) ydtBuilder.getRootNode();
81 // Logical root node does not have operation type
82 validateNodeContents(ydtNode, "yms-ietf-network", null);
83 ydtNode = ydtNode.getFirstChild();
84 validateNodeContents(ydtNode, "yms-ietf-network", MERGE);
85 ydtNode = ydtNode.getFirstChild();
86 validateNodeContents(ydtNode, "networks", MERGE);
87 ydtNode = ydtNode.getFirstChild();
88 validateNodeContents(ydtNode, "network", MERGE);
89 ydtNode = ydtNode.getFirstChild();
90 validateLeafContents(ydtNode, "network-id", "network1");
91
92 ydtNode = ydtNode.getNextSibling();
93 validateNodeContents(ydtNode, "supporting-network", MERGE);
94 ydtNode = ydtNode.getFirstChild();
95 validateLeafContents(ydtNode, "network-ref", "network2");
96 ydtNode = ydtNode.getParent();
97
98 ydtNode = ydtNode.getNextSibling();
99 validateNodeContents(ydtNode, "node", MERGE);
100 ydtNode = ydtNode.getFirstChild();
101 validateLeafContents(ydtNode, "node-id", "node1");
102 ydtNode = ydtNode.getNextSibling();
103 validateNodeContents(ydtNode, "supporting-node", MERGE);
104 ydtNode = ydtNode.getFirstChild();
105 validateLeafContents(ydtNode, "network-ref", "network3");
106 ydtNode = ydtNode.getNextSibling();
107 validateLeafContents(ydtNode, "node-ref", "network4");
108
109 ydtNode = ydtNode.getParent().getParent().getParent().getParent();
110
111 ydtNode = ydtNode.getNextSibling();
112 validateNodeContents(ydtNode, "networks-state", MERGE);
113 ydtNode = ydtNode.getFirstChild();
114 validateNodeContents(ydtNode, "network", MERGE);
115 ydtNode = ydtNode.getFirstChild();
116 validateLeafContents(ydtNode, "network-ref", "network5");
117 ydtNode = ydtNode.getNextSibling();
118 validateLeafContents(ydtNode, "server-provided", "true");
119 }
120}