blob: 37df836b633e07b879159389a05e0e140ba5fd48 [file] [log] [blame]
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +05301/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
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.ypm;
18
19import org.junit.Test;
sonu guptaeff184b2016-11-24 12:43:49 +053020import org.onosproject.yangutils.datamodel.YangSchemaNodeIdentifier;
21import org.onosproject.yms.ypm.DefaultYpmNode;
22import org.onosproject.yms.ypm.YpmContext;
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +053023
24import static org.hamcrest.MatcherAssert.assertThat;
25import static org.hamcrest.Matchers.is;
26import static org.hamcrest.Matchers.notNullValue;
27import static org.hamcrest.Matchers.nullValue;
28
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +053029/**
30 * Unit tests for YpmManager class.
31 */
32public class YpmManagerTest {
33 private final String logicalName = "logicalYpmNode";
34 private final String moduleName1 = "portPairModule1";
35 private final String moduleName2 = "portPairModule2";
36 private final String xNodeName = "x";
37 private final String yNodeName = "y";
38 private final String zNodeName = "z";
39 private final String x1NodeName = "x1";
40 private final String x2NodeName = "x2";
41 private final String y1NodeName = "y1";
42 private final String y2NodeName = "y2";
43 private final String y11NodeName = "y11";
44 private final String z1NodeName = "z1";
45 private final String z2NodeName = "z2";
46 private final String z3NodeName = "z3";
47
48 /**
49 * Creates module1 ydt tree.
50 */
51 public YdtNodeAdapter createModule1Tree() throws CloneNotSupportedException {
52 YangSchemaNodeIdentifier tmpNodeIdentifier;
53 YdtNodeAdapter rootNode = new YdtNodeAdapter();
54 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
55 tmpNodeIdentifier.setName(logicalName);
56 rootNode.setNodeIdentifier(tmpNodeIdentifier);
57
58 // Create module node with moduleName1
59 YdtNodeAdapter moduleNode = new YdtNodeAdapter();
60 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
61 tmpNodeIdentifier.setName(moduleName1);
62 moduleNode.setNodeIdentifier(tmpNodeIdentifier);
63 moduleNode.setParent(rootNode);
64 rootNode.addChild(moduleNode); // child to logical node
65 YdtNodeAdapter xNode = new YdtNodeAdapter();
66 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
67 tmpNodeIdentifier.setName(xNodeName);
68 xNode.setNodeIdentifier(tmpNodeIdentifier);
69 YdtNodeAdapter yNode = new YdtNodeAdapter();
70 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
71 tmpNodeIdentifier.setName(yNodeName);
72 yNode.setNodeIdentifier(tmpNodeIdentifier);
73 YdtNodeAdapter zNode = new YdtNodeAdapter();
74 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
75 tmpNodeIdentifier.setName(zNodeName);
76 zNode.setNodeIdentifier(tmpNodeIdentifier);
77 moduleNode.addChild(xNode); // child to module node
78 xNode.addSibling(yNode);
79 yNode.addSibling(zNode);
80 YdtNodeAdapter x1Node = new YdtNodeAdapter();
81 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
82 tmpNodeIdentifier.setName(x1NodeName);
83 x1Node.setNodeIdentifier(tmpNodeIdentifier);
84 YdtNodeAdapter x2Node = new YdtNodeAdapter();
85 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
86 tmpNodeIdentifier.setName(x2NodeName);
87 x2Node.setNodeIdentifier(tmpNodeIdentifier);
88 YdtNodeAdapter y1Node = new YdtNodeAdapter();
89 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
90 tmpNodeIdentifier.setName(y1NodeName);
91 y1Node.setNodeIdentifier(tmpNodeIdentifier);
92 YdtNodeAdapter y2Node = new YdtNodeAdapter();
93 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
94 tmpNodeIdentifier.setName(y2NodeName);
95 y2Node.setNodeIdentifier(tmpNodeIdentifier);
96 YdtNodeAdapter z1Node = new YdtNodeAdapter();
97 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
98 tmpNodeIdentifier.setName(z1NodeName);
99 z1Node.setNodeIdentifier(tmpNodeIdentifier);
100 YdtNodeAdapter z2Node = new YdtNodeAdapter();
101 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
102 tmpNodeIdentifier.setName(z2NodeName);
103 z2Node.setNodeIdentifier(tmpNodeIdentifier);
104 xNode.addChild(x1Node);
105 x1Node.addSibling(x2Node);
106 yNode.addChild(y1Node);
107 y1Node.addSibling(y2Node);
108 zNode.addChild(z1Node);
109 z1Node.addSibling(z2Node);
110
111 return rootNode;
112 }
113
114 /**
sonu guptaeff184b2016-11-24 12:43:49 +0530115 * Checks the protocol data added in YpmManger when only single module exists.
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +0530116 */
117 @Test
118 public void retrieveAndCheckProtocolDataWhenSingleModule() throws CloneNotSupportedException {
119 YdtNodeAdapter rootNode = createModule1Tree();
120
121 YpmManager ypmManager = new YpmManager();
122 Object metaData = 10;
123 ypmManager.setProtocolData(rootNode, metaData);
124 YpmContext ypmContext = ypmManager.getProtocolData(rootNode);
125 DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext;
126 assertThat(rootYpmNode.getName(), is(logicalName));
127 DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild();
128 assertThat(currYpmNode.getName(), is(moduleName1));
129 currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild();
130 assertThat(currYpmNode.getName(), is(xNodeName)); // x node
131 assertThat(currYpmNode.getMetaData(), is(metaData));
132 assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node
133 currYpmNode = currYpmNode.getNextSibling();
134 assertThat(currYpmNode.getMetaData(), is(metaData));
135 assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node
136 currYpmNode = currYpmNode.getNextSibling();
137 assertThat(currYpmNode.getMetaData(), is(metaData));
138 assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling
139
140 // Check x node leaf's x1 and x2
141 DefaultYpmNode moduleYpmNode = currYpmNode.getParent();
142 assertThat(moduleYpmNode.getName(), is(moduleName1));
143 DefaultYpmNode xYpmNode = (DefaultYpmNode) moduleYpmNode.getFirstChild();
144 assertThat(xYpmNode.getName(), is(xNodeName));
145 assertThat(xYpmNode.getMetaData(), is(metaData));
146 // Check x1 node
147 currYpmNode = (DefaultYpmNode) xYpmNode.getFirstChild();
148 assertThat(currYpmNode.getName(), is(x1NodeName));
149 assertThat(currYpmNode.getMetaData(), is(metaData));
150 // Check x2 node
151 currYpmNode = currYpmNode.getNextSibling();
152 assertThat(currYpmNode.getName(), is(x2NodeName));
153 assertThat(currYpmNode.getMetaData(), is(metaData));
154
155 // Check y node leaf's y1 and y2
156 DefaultYpmNode yYpmNode = xYpmNode.getNextSibling();
157 assertThat(yYpmNode.getName(), is(yNodeName));
158 assertThat(yYpmNode.getMetaData(), is(metaData));
159 // Check y1 node
160 currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild();
161 assertThat(currYpmNode.getName(), is(y1NodeName));
162 assertThat(currYpmNode.getMetaData(), is(metaData));
163 // Check y2 node
164 currYpmNode = currYpmNode.getNextSibling();
165 assertThat(currYpmNode.getName(), is(y2NodeName));
166 assertThat(currYpmNode.getMetaData(), is(metaData));
167
168 // Check z node leaf's z1 and z2
169 DefaultYpmNode zYpmNode = yYpmNode.getNextSibling();
170 assertThat(zYpmNode.getName(), is(zNodeName));
171 assertThat(zYpmNode.getMetaData(), is(metaData));
172 // Check z1 node
173 currYpmNode = (DefaultYpmNode) zYpmNode.getFirstChild();
174 assertThat(currYpmNode.getName(), is(z1NodeName));
175 assertThat(currYpmNode.getMetaData(), is(metaData));
176 // Check z2 node
177 currYpmNode = currYpmNode.getNextSibling();
178 assertThat(currYpmNode.getName(), is(z2NodeName));
179 assertThat(currYpmNode.getMetaData(), is(metaData));
180 }
181
182 /**
183 * Creates module2 ydt tree. Module1 and Module2 trees are point to same logical root.
184 */
185 public YdtNodeAdapter createModule2Tree() throws CloneNotSupportedException {
186 YangSchemaNodeIdentifier tmpNodeIdentifier;
187 YdtNodeAdapter rootNode = createModule1Tree();
188 YdtNodeAdapter moduleNode = new YdtNodeAdapter();
189 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
190 tmpNodeIdentifier.setName(moduleName2);
191 moduleNode.setNodeIdentifier(tmpNodeIdentifier);
192 moduleNode.setParent(rootNode);
193 rootNode.addChild(moduleNode); // child to logical node
194 YdtNodeAdapter xNode = new YdtNodeAdapter();
195 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
196 tmpNodeIdentifier.setName(xNodeName);
197 xNode.setNodeIdentifier(tmpNodeIdentifier);
198 YdtNodeAdapter yNode = new YdtNodeAdapter();
199 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
200 tmpNodeIdentifier.setName(yNodeName);
201 yNode.setNodeIdentifier(tmpNodeIdentifier);
202 YdtNodeAdapter zNode = new YdtNodeAdapter();
203 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
204 tmpNodeIdentifier.setName(zNodeName);
205 zNode.setNodeIdentifier(tmpNodeIdentifier);
206 moduleNode.addChild(xNode); // child to module node
207 xNode.addSibling(yNode);
208 yNode.addSibling(zNode);
209 YdtNodeAdapter x1Node = new YdtNodeAdapter();
210 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
211 tmpNodeIdentifier.setName(x1NodeName);
212 x1Node.setNodeIdentifier(tmpNodeIdentifier);
213 YdtNodeAdapter x2Node = new YdtNodeAdapter();
214 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
215 tmpNodeIdentifier.setName(x2NodeName);
216 x2Node.setNodeIdentifier(tmpNodeIdentifier);
217 YdtNodeAdapter y1Node = new YdtNodeAdapter();
218 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
219 tmpNodeIdentifier.setName(y1NodeName);
220 y1Node.setNodeIdentifier(tmpNodeIdentifier);
221 YdtNodeAdapter y2Node = new YdtNodeAdapter();
222 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
223 tmpNodeIdentifier.setName(y2NodeName);
224 y2Node.setNodeIdentifier(tmpNodeIdentifier);
225 YdtNodeAdapter z1Node = new YdtNodeAdapter();
226 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
227 tmpNodeIdentifier.setName(z1NodeName);
228 z1Node.setNodeIdentifier(tmpNodeIdentifier);
229 YdtNodeAdapter z2Node = new YdtNodeAdapter();
230 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
231 tmpNodeIdentifier.setName(z2NodeName);
232 z2Node.setNodeIdentifier(tmpNodeIdentifier);
233 xNode.addChild(x1Node);
234 x1Node.addSibling(x2Node);
235 yNode.addChild(y1Node);
236 y1Node.addSibling(y2Node);
237 zNode.addChild(z1Node);
238 z1Node.addSibling(z2Node);
239
240 return rootNode;
241 }
242
243 /**
sonu guptaeff184b2016-11-24 12:43:49 +0530244 * Checks the protocol data added in YpmManger when multiple modules exists.
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +0530245 */
246 @Test
247 public void retrieveAndCheckProtocolDataWhenMultipleModule() throws CloneNotSupportedException {
248 YdtNodeAdapter rootNode = createModule2Tree();
249
250 YpmManager ypmManager = new YpmManager();
251 Object metaData = 10;
252 ypmManager.setProtocolData(rootNode, metaData);
253 YpmContext ypmContext = ypmManager.getProtocolData(rootNode);
254 DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext;
255 assertThat(rootYpmNode.getName(), is(logicalName));
256 DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild();
257 currYpmNode = currYpmNode.getNextSibling(); // jump to next module (module2)
258 assertThat(currYpmNode.getName(), is(moduleName2));
259 currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild();
260 assertThat(currYpmNode.getName(), is(xNodeName)); // x node
261 assertThat(currYpmNode.getMetaData(), is(metaData));
262 assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node
263 currYpmNode = currYpmNode.getNextSibling();
264 assertThat(currYpmNode.getMetaData(), is(metaData));
265 assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node
266 currYpmNode = currYpmNode.getNextSibling();
267 assertThat(currYpmNode.getMetaData(), is(metaData));
268 assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling
269
270 // Check x node leaf's x1 and x2
271 DefaultYpmNode moduleYpmNode = currYpmNode.getParent();
272 assertThat(moduleYpmNode.getName(), is(moduleName2));
273 DefaultYpmNode xYpmNode = (DefaultYpmNode) moduleYpmNode.getFirstChild();
274 assertThat(xYpmNode.getName(), is(xNodeName));
275 assertThat(xYpmNode.getMetaData(), is(metaData));
276 // Check x1 node
277 currYpmNode = (DefaultYpmNode) xYpmNode.getFirstChild();
278 assertThat(currYpmNode.getName(), is(x1NodeName));
279 assertThat(currYpmNode.getMetaData(), is(metaData));
280 // Check x2 node
281 currYpmNode = currYpmNode.getNextSibling();
282 assertThat(currYpmNode.getName(), is(x2NodeName));
283 assertThat(currYpmNode.getMetaData(), is(metaData));
284
285 // Check y node leaf's y1 and y2
286 DefaultYpmNode yYpmNode = xYpmNode.getNextSibling();
287 assertThat(yYpmNode.getName(), is(yNodeName));
288 assertThat(yYpmNode.getMetaData(), is(metaData));
289 // Check y1 node
290 currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild();
291 assertThat(currYpmNode.getName(), is(y1NodeName));
292 assertThat(currYpmNode.getMetaData(), is(metaData));
293 // Check y2 node
294 currYpmNode = currYpmNode.getNextSibling();
295 assertThat(currYpmNode.getName(), is(y2NodeName));
296 assertThat(currYpmNode.getMetaData(), is(metaData));
297
298 // Check z node leaf's z1 and z2
299 DefaultYpmNode zYpmNode = yYpmNode.getNextSibling();
300 assertThat(zYpmNode.getName(), is(zNodeName));
301 assertThat(zYpmNode.getMetaData(), is(metaData));
302 // Check z1 node
303 currYpmNode = (DefaultYpmNode) zYpmNode.getFirstChild();
304 assertThat(currYpmNode.getName(), is(z1NodeName));
305 assertThat(currYpmNode.getMetaData(), is(metaData));
306 // Check z2 node
307 currYpmNode = currYpmNode.getNextSibling();
308 assertThat(currYpmNode.getName(), is(z2NodeName));
309 assertThat(currYpmNode.getMetaData(), is(metaData));
310 }
311
312 /**
sonu guptaeff184b2016-11-24 12:43:49 +0530313 * Checks the protocol data added in YpmManger, but tests only part of module1 tree.
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +0530314 */
315 @Test
316 public void retrieveAndCheckProtocolDataChosenFromPartOfModule1Tree() throws CloneNotSupportedException {
317 YangSchemaNodeIdentifier tmpNodeIdentifier;
318 YdtNodeAdapter rootNode = createModule2Tree();
319
320 // Sets the tree
321 YpmManager ypmManager = new YpmManager();
322 Object metaData = 10;
323 ypmManager.setProtocolData(rootNode, metaData);
324
325 // Create new ydt tree part of module1 tree
326 YdtNodeAdapter rootNewYdtNode = new YdtNodeAdapter();
327 // Create module node with moduleName1
328 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
329 tmpNodeIdentifier.setName(logicalName);
330 rootNewYdtNode.setNodeIdentifier(tmpNodeIdentifier);
331 YdtNodeAdapter moduleNode = new YdtNodeAdapter();
332 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
333 tmpNodeIdentifier.setName(moduleName1);
334 moduleNode.setNodeIdentifier(tmpNodeIdentifier);
335 moduleNode.setParent(rootNewYdtNode);
336 rootNewYdtNode.addChild(moduleNode); // child to logical node
337 YdtNodeAdapter yNode = new YdtNodeAdapter();
338 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
339 tmpNodeIdentifier.setName(yNodeName);
340 yNode.setNodeIdentifier(tmpNodeIdentifier);
341 YdtNodeAdapter zNode = new YdtNodeAdapter();
342 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
343 tmpNodeIdentifier.setName(zNodeName);
344 zNode.setNodeIdentifier(tmpNodeIdentifier);
345 moduleNode.addChild(yNode); // child to module node
346 yNode.addSibling(zNode);
347 YdtNodeAdapter y1Node = new YdtNodeAdapter();
348 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
349 tmpNodeIdentifier.setName(y1NodeName);
350 y1Node.setNodeIdentifier(tmpNodeIdentifier);
351 YdtNodeAdapter y2Node = new YdtNodeAdapter();
352 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
353 tmpNodeIdentifier.setName(y2NodeName);
354 y2Node.setNodeIdentifier(tmpNodeIdentifier);
355 yNode.addChild(y1Node);
356 y1Node.addSibling(y2Node);
357
358 // Again sets the protocol data
359 metaData = 20;
360 ypmManager.setProtocolData(rootNewYdtNode, metaData);
361
362 // Retrieve protocol data and check the contents
363 YpmContext ypmContext = ypmManager.getProtocolData(rootNewYdtNode);
364 DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext;
365 assertThat(rootYpmNode.getName(), is(logicalName));
366 DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild();
367 assertThat(currYpmNode.getName(), is(moduleName1));
368 // Check y and z node
369 currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild();
370 DefaultYpmNode yYpmNode = currYpmNode;
371 assertThat(currYpmNode.getName(), is(yNodeName)); // x node
372 assertThat(currYpmNode.getMetaData(), is(metaData));
373 assertThat(currYpmNode.getNextSibling(), notNullValue()); // z node
374 currYpmNode = currYpmNode.getNextSibling();
375 assertThat(currYpmNode.getName(), is(zNodeName));
376 assertThat(currYpmNode.getMetaData(), is(metaData));
377 assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling
378 // Check y1 and y2 node
379 currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild();
380 assertThat(currYpmNode.getName(), is(y1NodeName));
381 assertThat(currYpmNode.getMetaData(), is(metaData));
382 assertThat(currYpmNode.getNextSibling(), notNullValue()); // y2 should exists
383 currYpmNode = currYpmNode.getNextSibling();
384 assertThat(currYpmNode.getName(), is(y2NodeName));
385 assertThat(currYpmNode.getMetaData(), is(metaData));
386 assertThat(currYpmNode.getNextSibling(), nullValue());
387 }
388
389 /**
sonu guptaeff184b2016-11-24 12:43:49 +0530390 * Checks the protocol data added in YpmManger, but tests part of module1 tree with little bit extended tree.
Mahesh Poojary Huaweia330c582016-08-26 10:38:10 +0530391 */
392 @Test
393 public void retrieveAndCheckProtocolDataChosenFromPartOfModule1TreeWithExtended()
394 throws CloneNotSupportedException {
395 YangSchemaNodeIdentifier tmpNodeIdentifier;
396 YdtNodeAdapter rootNode = createModule2Tree();
397
398 // Sets the tree
399 YpmManager ypmManager = new YpmManager();
400 Object metaData = 10;
401 ypmManager.setProtocolData(rootNode, metaData);
402
403 // Create new ydt tree part of module1 tree
404 YdtNodeAdapter rootNewYdtNode = new YdtNodeAdapter();
405 // Create module node with moduleName1
406 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
407 tmpNodeIdentifier.setName(logicalName);
408 rootNewYdtNode.setNodeIdentifier(tmpNodeIdentifier);
409 YdtNodeAdapter moduleNode = new YdtNodeAdapter();
410 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
411 tmpNodeIdentifier.setName(moduleName1);
412 moduleNode.setNodeIdentifier(tmpNodeIdentifier);
413 moduleNode.setParent(rootNewYdtNode);
414 rootNewYdtNode.addChild(moduleNode); // child to logical node
415 YdtNodeAdapter yNode = new YdtNodeAdapter();
416 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
417 tmpNodeIdentifier.setName(yNodeName);
418 yNode.setNodeIdentifier(tmpNodeIdentifier);
419 YdtNodeAdapter zNode = new YdtNodeAdapter();
420 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
421 tmpNodeIdentifier.setName(zNodeName);
422 zNode.setNodeIdentifier(tmpNodeIdentifier);
423 moduleNode.addChild(yNode); // child to module node
424 yNode.addSibling(zNode);
425 YdtNodeAdapter y1Node = new YdtNodeAdapter();
426 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
427 tmpNodeIdentifier.setName(y1NodeName);
428 y1Node.setNodeIdentifier(tmpNodeIdentifier);
429 YdtNodeAdapter y2Node = new YdtNodeAdapter();
430 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
431 tmpNodeIdentifier.setName(y2NodeName);
432 y2Node.setNodeIdentifier(tmpNodeIdentifier);
433 yNode.addChild(y1Node);
434 y1Node.addSibling(y2Node);
435 YdtNodeAdapter y11Node = new YdtNodeAdapter();
436 // Add new y11 node
437 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
438 tmpNodeIdentifier.setName(y11NodeName);
439 y11Node.setNodeIdentifier(tmpNodeIdentifier);
440 y1Node.addChild(y11Node);
441 // Add new y3 node
442 YdtNodeAdapter z3Node = new YdtNodeAdapter();
443 tmpNodeIdentifier = new YangSchemaNodeIdentifier();
444 tmpNodeIdentifier.setName(z3NodeName);
445 z3Node.setNodeIdentifier(tmpNodeIdentifier);
446 zNode.addChild(z3Node);
447
448 // Again sets the protocol data
449 metaData = 20;
450 ypmManager.setProtocolData(rootNewYdtNode, metaData);
451
452 // Retrieve protocol data and check the contents
453 YpmContext ypmContext = ypmManager.getProtocolData(rootNewYdtNode);
454 DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext;
455 assertThat(rootYpmNode.getName(), is(logicalName));
456 DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild();
457 assertThat(currYpmNode.getName(), is(moduleName1));
458 // Check y and z node
459 currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild();
460 DefaultYpmNode yYpmNode = currYpmNode;
461 assertThat(currYpmNode.getName(), is(yNodeName)); // y node
462 assertThat(currYpmNode.getMetaData(), is(metaData));
463 assertThat(currYpmNode.getNextSibling(), notNullValue()); // z node
464 currYpmNode = currYpmNode.getNextSibling();
465 DefaultYpmNode zYpmNode = currYpmNode;
466 assertThat(currYpmNode.getName(), is(zNodeName));
467 assertThat(currYpmNode.getMetaData(), is(metaData));
468 assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling
469 // Check y1 and y2 node
470 currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild();
471 DefaultYpmNode y1YpmNode = currYpmNode;
472 assertThat(currYpmNode.getName(), is(y1NodeName));
473 assertThat(currYpmNode.getMetaData(), is(metaData));
474 assertThat(currYpmNode.getNextSibling(), notNullValue()); // y2 should exists
475 currYpmNode = currYpmNode.getNextSibling();
476 assertThat(currYpmNode.getName(), is(y2NodeName));
477 assertThat(currYpmNode.getMetaData(), is(metaData));
478 assertThat(currYpmNode.getNextSibling(), nullValue());
479 // Check new y11 node
480 currYpmNode = (DefaultYpmNode) y1YpmNode.getFirstChild();
481 assertThat(currYpmNode.getName(), is(y11NodeName));
482 assertThat(currYpmNode.getMetaData(), is(metaData));
483 assertThat(currYpmNode.getNextSibling(), nullValue());
484 assertThat(currYpmNode.getFirstChild(), nullValue());
485 // Check new z3 node
486 currYpmNode = (DefaultYpmNode) zYpmNode.getFirstChild();
487 assertThat(currYpmNode.getName(), is(z3NodeName));
488 assertThat(currYpmNode.getMetaData(), is(metaData));
489 assertThat(currYpmNode.getNextSibling(), nullValue());
490 assertThat(currYpmNode.getFirstChild(), nullValue());
491 }
492}