2 * Copyright (c) 2014 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.yangtools.yang.model.util.ut;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertNull;
15 import org.junit.BeforeClass;
16 import org.junit.Test;
17 import org.opendaylight.yangtools.yang.common.QName;
18 import org.opendaylight.yangtools.yang.common.Revision;
19 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
20 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
21 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
22 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
23 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
24 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
25 import org.opendaylight.yangtools.yang.model.api.Module;
26 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
27 import org.opendaylight.yangtools.yang.model.api.PathExpression;
28 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
29 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
30 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
31 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
32 import org.opendaylight.yangtools.yang.model.util.PathExpressionImpl;
33 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
34 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
36 public class SchemaContextUtilTest {
37 private static SchemaContext context;
38 private static Module myModule;
41 public static void beforeClass() {
42 context = YangParserTestUtils.parseYangResourceDirectory("/schema-context-util");
43 myModule = context.findModule(URI.create("uri:my-module"), Revision.of("2014-10-07")).get();
47 public void findNodeInSchemaContextTest() {
48 SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
49 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
50 "my-leaf-in-container"));
52 SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
53 QName.create(myModule.getQNameModule(), "my-leaf-in-container"));
54 SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
56 assertNotNull(testNode);
57 assertNotNull(foundNode);
58 assertEquals(testNode, foundNode);
60 RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
61 testNode = rpc.getInput().getDataChildByName(QName.create(myModule.getQNameModule(), "my-input-leaf"));
63 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
64 QName.create(myModule.getQNameModule(), "input"),
65 QName.create(myModule.getQNameModule(), "my-input-leaf"));
67 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
69 assertNotNull(testNode);
70 assertNotNull(foundNode);
71 assertEquals(testNode, foundNode);
73 rpc = getRpcByName(myModule, "my-rpc");
74 testNode = rpc.getOutput().getDataChildByName(QName.create(myModule.getQNameModule(), "my-output-leaf"));
76 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
77 QName.create(myModule.getQNameModule(), "output"),
78 QName.create(myModule.getQNameModule(), "my-output-leaf"));
80 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
82 assertNotNull(testNode);
83 assertNotNull(foundNode);
84 assertEquals(testNode, foundNode);
86 final NotificationDefinition notification = myModule.getNotifications().iterator().next();
87 testNode = notification.getDataChildByName(QName.create(myModule.getQNameModule(), "my-notification-leaf"));
89 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"),
90 QName.create(myModule.getQNameModule(), "my-notification-leaf"));
92 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
94 assertNotNull(testNode);
95 assertNotNull(foundNode);
96 assertEquals(testNode, foundNode);
98 final GroupingDefinition grouping = getGroupingByName(myModule, "my-grouping");
99 testNode = ((ContainerSchemaNode) grouping.getDataChildByName(QName.create(myModule.getQNameModule(),
100 "my-container-in-grouping"))).getDataChildByName(QName.create(myModule.getQNameModule(),
101 "my-leaf-in-grouping"));
103 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"),
104 QName.create(myModule.getQNameModule(), "my-container-in-grouping"),
105 QName.create(myModule.getQNameModule(), "my-leaf-in-grouping"));
107 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
109 assertNotNull(testNode);
110 assertNotNull(foundNode);
111 assertEquals(testNode, foundNode);
113 testNode = ((ChoiceSchemaNode) myModule
114 .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice")))
115 .findCaseNodes("one").iterator().next()
116 .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice-leaf-one"));
118 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
119 QName.create(myModule.getQNameModule(), "one"),
120 QName.create(myModule.getQNameModule(), "my-choice-leaf-one"));
121 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
123 assertNotNull(testNode);
124 assertNotNull(foundNode);
125 assertEquals(testNode, foundNode);
127 ListSchemaNode listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
128 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
131 testNode = listNode.getDataChildByName(QName.create(myModule.getQNameModule(), "my-leaf-in-list"));
133 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
134 QName.create(myModule.getQNameModule(), "my-list"),
135 QName.create(myModule.getQNameModule(), "my-leaf-in-list"));
136 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
138 assertNotNull(testNode);
139 assertNotNull(foundNode);
140 assertEquals(testNode, foundNode);
142 listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
143 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
146 testNode = listNode.getDataChildByName(QName.create(myModule.getQNameModule(), "my-leaf-list-in-list"));
148 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
149 QName.create(myModule.getQNameModule(), "my-list"),
150 QName.create(myModule.getQNameModule(), "my-leaf-list-in-list"));
151 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
153 assertNotNull(testNode);
154 assertNotNull(foundNode);
155 assertEquals(testNode, foundNode);
160 public void findNodeInSchemaContextTest2() {
161 SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
162 myModule.getQNameModule(), "my-container"))).dataChildByName(QName.create(myModule.getQNameModule(),
163 "my-leaf-not-in-container"));
164 assertNull(testNode);
166 SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
167 QName.create(myModule.getQNameModule(), "my-leaf-not-in-container"));
168 SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
169 assertNull(foundNode);
171 final RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
172 testNode = rpc.getInput().dataChildByName(QName.create(myModule.getQNameModule(), "no-input-leaf"));
173 assertNull(testNode);
175 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
176 QName.create(myModule.getQNameModule(), "input"),
177 QName.create(myModule.getQNameModule(), "no-input-leaf"));
179 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
180 assertNull(foundNode);
182 final NotificationDefinition notification = myModule.getNotifications().iterator().next();
183 testNode = notification.dataChildByName(QName.create(myModule.getQNameModule(), "no-notification-leaf"));
184 assertNull(testNode);
186 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"),
187 QName.create(myModule.getQNameModule(), "no-notification-leaf"));
189 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
190 assertNull(foundNode);
192 final GroupingDefinition grouping = getGroupingByName(myModule, "my-grouping");
193 testNode = ((ContainerSchemaNode) grouping.getDataChildByName(QName.create(myModule.getQNameModule(),
194 "my-container-in-grouping"))).dataChildByName(QName.create(myModule.getQNameModule(),
195 "no-leaf-in-grouping"));
196 assertNull(testNode);
198 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"),
199 QName.create(myModule.getQNameModule(), "my-container-in-grouping"),
200 QName.create(myModule.getQNameModule(), "no-leaf-in-grouping"));
202 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
203 assertNull(foundNode);
205 testNode = ((ChoiceSchemaNode) myModule
206 .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice")))
207 .findCaseNodes("one").iterator().next()
208 .dataChildByName(QName.create(myModule.getQNameModule(), "no-choice-leaf"));
209 assertNull(testNode);
211 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
212 QName.create(myModule.getQNameModule(), "one"),
213 QName.create(myModule.getQNameModule(), "no-choice-leaf"));
214 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
215 assertNull(foundNode);
217 ListSchemaNode listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
218 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
221 testNode = listNode.dataChildByName(QName.create(myModule.getQNameModule(), "no-leaf-in-list"));
222 assertNull(testNode);
224 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
225 QName.create(myModule.getQNameModule(), "my-list"),
226 QName.create(myModule.getQNameModule(), "no-leaf-in-list"));
227 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
228 assertNull(foundNode);
230 listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
231 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
234 testNode = listNode.dataChildByName(QName.create(myModule.getQNameModule(), "no-leaf-list-in-list"));
235 assertNull(testNode);
237 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
238 QName.create(myModule.getQNameModule(), "my-list"),
239 QName.create(myModule.getQNameModule(), "no-leaf-list-in-list"));
240 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
241 assertNull(foundNode);
245 public void findNodeInSchemaContextTest3() {
246 SchemaNode testNode = myModule.getDataChildByName(QName.create(myModule.getQNameModule(), "my-container"));
248 SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"));
249 SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
251 assertNotNull(testNode);
252 assertNotNull(foundNode);
253 assertEquals(testNode, foundNode);
255 testNode = getRpcByName(myModule, "my-rpc");
257 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"));
258 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
260 assertNotNull(testNode);
261 assertNotNull(foundNode);
262 assertEquals(testNode, foundNode);
264 testNode = myModule.getNotifications().iterator().next();
266 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"));
267 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
269 assertNotNull(testNode);
270 assertNotNull(foundNode);
271 assertEquals(testNode, foundNode);
273 testNode = getGroupingByName(myModule, "my-grouping");
275 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"));
276 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
278 assertNotNull(testNode);
279 assertNotNull(foundNode);
280 assertEquals(testNode, foundNode);
282 testNode = myModule.getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice"));
284 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"));
285 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
287 assertNotNull(testNode);
288 assertNotNull(foundNode);
289 assertEquals(testNode, foundNode);
291 testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(myModule.getQNameModule(),
292 "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(), "my-list"));
294 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
295 QName.create(myModule.getQNameModule(), "my-list"));
296 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
298 assertNotNull(testNode);
299 assertNotNull(foundNode);
300 assertEquals(testNode, foundNode);
304 public void findParentModuleTest() {
305 final DataSchemaNode node = myModule.getDataChildByName(QName.create(myModule.getQNameModule(),
308 final Module foundModule = SchemaContextUtil.findParentModule(context, node);
310 assertEquals(myModule, foundModule);
314 public void findDataSchemaNodeTest() {
315 final Module importedModule = context.findModule(URI.create("uri:imported-module"),
316 Revision.of("2014-10-07")).get();
318 final SchemaNode testNode = ((ContainerSchemaNode) importedModule.getDataChildByName(QName.create(
319 importedModule.getQNameModule(), "my-imported-container"))).getDataChildByName(QName.create(
320 importedModule.getQNameModule(), "my-imported-leaf"));
322 final PathExpression xpath = new PathExpressionImpl("imp:my-imported-container/imp:my-imported-leaf", true);
324 final SchemaNode foundNode = SchemaContextUtil.findDataSchemaNode(context, myModule, xpath);
326 assertNotNull(foundNode);
327 assertNotNull(testNode);
328 assertEquals(testNode, foundNode);
332 public void findDataSchemaNodeTest2() {
333 final GroupingDefinition grouping = getGroupingByName(myModule, "my-grouping");
334 final SchemaNode testNode = grouping.getDataChildByName(QName.create(myModule.getQNameModule(),
335 "my-leaf-in-gouping2"));
337 final PathExpression xpath = new PathExpressionImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
339 final SchemaNode foundNode = SchemaContextUtil.findDataSchemaNode(context, myModule, xpath);
341 assertNotNull(foundNode);
342 assertNotNull(testNode);
343 assertEquals(testNode, foundNode);
348 public void findNodeInSchemaContextGroupingsTest() {
349 // find grouping in container
350 DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName(QName.create(
351 myModule.getQNameModule(), "my-container"));
352 SchemaNode testNode = getGroupingByName(dataContainer, "my-grouping-in-container");
354 SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
355 QName.create(myModule.getQNameModule(), "my-grouping-in-container"));
356 SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
358 assertNotNull(testNode);
359 assertNotNull(foundNode);
360 assertEquals(testNode, foundNode);
362 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
363 "my-leaf-in-grouping-in-container"));
364 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-container"));
366 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
368 assertNotNull(testNode);
369 assertNotNull(foundNode);
370 assertEquals(testNode, foundNode);
372 // find grouping in list
373 dataContainer = (DataNodeContainer) ((DataNodeContainer) myModule.getDataChildByName(QName.create(
374 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
376 testNode = getGroupingByName(dataContainer, "my-grouping-in-list");
378 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
379 QName.create(myModule.getQNameModule(), "my-list"),
380 QName.create(myModule.getQNameModule(), "my-grouping-in-list"));
381 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
383 assertNotNull(testNode);
384 assertNotNull(foundNode);
385 assertEquals(testNode, foundNode);
387 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
388 "my-leaf-in-grouping-in-list"));
389 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-list"));
391 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
393 assertNotNull(testNode);
394 assertNotNull(foundNode);
395 assertEquals(testNode, foundNode);
397 // find grouping in grouping
398 dataContainer = getGroupingByName(myModule, "my-grouping");
399 testNode = getGroupingByName(dataContainer, "my-grouping-in-grouping");
401 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"),
402 QName.create(myModule.getQNameModule(), "my-grouping-in-grouping"));
403 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
405 assertNotNull(testNode);
406 assertNotNull(foundNode);
407 assertEquals(testNode, foundNode);
409 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
410 "my-leaf-in-grouping-in-grouping"));
411 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-grouping"));
413 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
415 assertNotNull(testNode);
416 assertNotNull(foundNode);
417 assertEquals(testNode, foundNode);
419 // find grouping in rpc
420 final RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
421 for (final GroupingDefinition grouping : rpc.getGroupings()) {
422 if (grouping.getQName().getLocalName().equals("my-grouping-in-rpc")) {
427 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
428 QName.create(myModule.getQNameModule(), "my-grouping-in-rpc"));
429 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
431 assertNotNull(testNode);
432 assertNotNull(foundNode);
433 assertEquals(testNode, foundNode);
435 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
436 "my-leaf-in-grouping-in-rpc"));
437 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-rpc"));
439 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
441 assertNotNull(testNode);
442 assertNotNull(foundNode);
443 assertEquals(testNode, foundNode);
445 // find grouping in output
446 dataContainer = getRpcByName(myModule, "my-rpc").getOutput();
447 testNode = getGroupingByName(dataContainer, "my-grouping-in-output");
449 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
450 QName.create(myModule.getQNameModule(), "output"),
451 QName.create(myModule.getQNameModule(), "my-grouping-in-output"));
452 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
454 assertNotNull(testNode);
455 assertNotNull(foundNode);
456 assertEquals(testNode, foundNode);
458 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
459 "my-leaf-in-grouping-in-output"));
460 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-output"));
462 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
464 assertNotNull(testNode);
465 assertNotNull(foundNode);
466 assertEquals(testNode, foundNode);
468 // find grouping in input
469 dataContainer = getRpcByName(myModule, "my-rpc").getInput();
470 testNode = getGroupingByName(dataContainer, "my-grouping-in-input");
472 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
473 QName.create(myModule.getQNameModule(), "input"),
474 QName.create(myModule.getQNameModule(), "my-grouping-in-input"));
475 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
477 assertNotNull(testNode);
478 assertNotNull(foundNode);
479 assertEquals(testNode, foundNode);
481 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
482 "my-leaf-in-grouping-in-input"));
483 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-input"));
485 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
487 assertNotNull(testNode);
488 assertNotNull(foundNode);
489 assertEquals(testNode, foundNode);
491 // find grouping in notification
492 dataContainer = getNotificationByName(myModule, "my-notification");
493 testNode = getGroupingByName(dataContainer, "my-grouping-in-notification");
495 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"),
496 QName.create(myModule.getQNameModule(), "my-grouping-in-notification"));
497 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
499 assertNotNull(testNode);
500 assertNotNull(foundNode);
501 assertEquals(testNode, foundNode);
503 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
504 "my-leaf-in-grouping-in-notification"));
505 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-notification"));
507 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
509 assertNotNull(testNode);
510 assertNotNull(foundNode);
511 assertEquals(testNode, foundNode);
513 // find grouping in case
514 dataContainer = (DataNodeContainer) ((ChoiceSchemaNode) myModule.getDataChildByName(
515 QName.create(myModule.getQNameModule(), "my-choice")))
516 .findCaseNodes("one").iterator().next()
517 .getDataChildByName(QName.create(myModule.getQNameModule(), "my-container-in-case"));
518 testNode = getGroupingByName(dataContainer, "my-grouping-in-case");
520 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
521 QName.create(myModule.getQNameModule(), "one"),
522 QName.create(myModule.getQNameModule(), "my-container-in-case"),
523 QName.create(myModule.getQNameModule(), "my-grouping-in-case"));
524 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
526 assertNotNull(testNode);
527 assertNotNull(foundNode);
528 assertEquals(testNode, foundNode);
530 testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
531 "my-leaf-in-grouping-in-case"));
532 path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-case"));
534 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
536 assertNotNull(testNode);
537 assertNotNull(foundNode);
538 assertEquals(testNode, foundNode);
542 public void findNodeInSchemaContextGroupingsTest2() {
543 // find grouping in container
544 DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName(QName.create(
545 myModule.getQNameModule(), "my-container"));
546 SchemaNode testNode = getGroupingByName(dataContainer, "my-grouping-in-container2");
548 SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
549 QName.create(myModule.getQNameModule(), "my-grouping-in-container2"));
550 SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
552 assertNull(testNode);
553 assertNull(foundNode);
555 // find grouping in list
556 dataContainer = (DataNodeContainer) ((DataNodeContainer) myModule.getDataChildByName(QName.create(
557 myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
559 testNode = getGroupingByName(dataContainer, "my-grouping-in-list2");
561 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
562 QName.create(myModule.getQNameModule(), "my-list"),
563 QName.create(myModule.getQNameModule(), "my-grouping-in-list2"));
564 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
566 assertNull(testNode);
567 assertNull(foundNode);
569 // find grouping in grouping
570 dataContainer = getGroupingByName(myModule, "my-grouping");
571 testNode = getGroupingByName(dataContainer, "my-grouping-in-grouping2");
573 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"),
574 QName.create(myModule.getQNameModule(), "my-grouping-in-grouping2"));
575 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
577 assertNull(testNode);
578 assertNull(foundNode);
580 // find grouping in rpc
581 final RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
582 for (final GroupingDefinition grouping : rpc.getGroupings()) {
583 if (grouping.getQName().getLocalName().equals("my-grouping-in-rpc2")) {
588 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
589 QName.create(myModule.getQNameModule(), "my-grouping-in-rpc2"));
590 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
592 assertNull(testNode);
593 assertNull(foundNode);
595 // find grouping in output
596 dataContainer = getRpcByName(myModule, "my-rpc").getOutput();
597 testNode = getGroupingByName(dataContainer, "my-grouping-in-output2");
599 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
600 QName.create(myModule.getQNameModule(), "output"),
601 QName.create(myModule.getQNameModule(), "my-grouping-in-output2"));
602 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
604 assertNull(testNode);
605 assertNull(foundNode);
607 // find grouping in input
608 dataContainer = getRpcByName(myModule, "my-rpc").getInput();
609 testNode = getGroupingByName(dataContainer, "my-grouping-in-input2");
611 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
612 QName.create(myModule.getQNameModule(), "input"),
613 QName.create(myModule.getQNameModule(), "my-grouping-in-input2"));
614 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
616 assertNull(testNode);
617 assertNull(foundNode);
619 // find grouping in notification
620 dataContainer = getNotificationByName(myModule, "my-notification");
621 testNode = getGroupingByName(dataContainer, "my-grouping-in-notification2");
623 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"),
624 QName.create(myModule.getQNameModule(), "my-grouping-in-notification2"));
625 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
627 assertNull(testNode);
628 assertNull(foundNode);
630 // find grouping in case
631 dataContainer = (DataNodeContainer) ((ChoiceSchemaNode) myModule.getDataChildByName(
632 QName.create(myModule.getQNameModule(), "my-choice")))
633 .findCaseNodes("one").iterator().next()
634 .getDataChildByName(QName.create(myModule.getQNameModule(), "my-container-in-case"));
635 testNode = getGroupingByName(dataContainer, "my-grouping-in-case2");
637 path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
638 QName.create(myModule.getQNameModule(), "one"),
639 QName.create(myModule.getQNameModule(), "my-container-in-case"),
640 QName.create(myModule.getQNameModule(), "my-grouping-in-case2"));
641 foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
643 assertNull(testNode);
644 assertNull(foundNode);
647 private static GroupingDefinition getGroupingByName(final DataNodeContainer dataNodeContainer, final String name) {
648 for (final GroupingDefinition grouping : dataNodeContainer.getGroupings()) {
649 if (grouping.getQName().getLocalName().equals(name)) {
656 private static RpcDefinition getRpcByName(final Module module, final String name) {
657 for (final RpcDefinition rpc : module.getRpcs()) {
658 if (rpc.getQName().getLocalName().equals(name)) {
665 private static NotificationDefinition getNotificationByName(final Module module, final String name) {
666 for (final NotificationDefinition notification : module.getNotifications()) {
667 if (notification.getQName().getLocalName().equals(name)) {
675 public void findNodeInSchemaContextTheSameNameOfSiblingsTest() {
676 final ChoiceSchemaNode choice = (ChoiceSchemaNode) getRpcByName(myModule, "my-name").getInput()
677 .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice"));
678 final SchemaNode testNode = choice.findCaseNodes("case-two").iterator().next()
679 .getDataChildByName(QName.create(myModule.getQNameModule(), "two"));
681 final SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-name"),
682 QName.create(myModule.getQNameModule(), "input"), QName.create(myModule.getQNameModule(), "my-choice"),
683 QName.create(myModule.getQNameModule(), "case-two"), QName.create(myModule.getQNameModule(), "two"));
684 final SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
686 assertNotNull(testNode);
687 assertNotNull(foundNode);
688 assertEquals(testNode, foundNode);