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.yangtools.sal.binding.generator.impl;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
13 import static org.opendaylight.yangtools.sal.binding.generator.impl.SupportTestUtil.containsInterface;
14 import static org.opendaylight.yangtools.sal.binding.generator.impl.SupportTestUtil.containsMethods;
17 import java.net.URISyntaxException;
18 import java.util.ArrayList;
19 import java.util.List;
22 import org.junit.Test;
23 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
24 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
25 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
26 import org.opendaylight.yangtools.sal.binding.model.api.Type;
27 import org.opendaylight.yangtools.yang.model.api.Module;
28 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
29 import org.opendaylight.yangtools.yang.model.parser.api.YangModelParser;
30 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
32 public class UsesTest {
34 private static List<File> loadTestResources(String testFile) {
36 final List<File> testModels = new ArrayList<File>();
37 final File listModelFile = new File(UsesTest.class.getResource(testFile).toURI());
38 testModels.add(listModelFile);
40 } catch (URISyntaxException e) {
41 throw new IllegalStateException(e);
46 public void usesInGroupingDependenciesTest() {
47 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-dependencies.yang");
48 final YangModelParser parser = new YangParserImpl();
49 final Set<Module> modules = parser.parseYangModels(testModels);
50 final SchemaContext context = parser.resolveSchemaContext(modules);
52 assertNotNull(context);
53 final BindingGenerator bindingGen = new BindingGeneratorImpl();
54 final List<Type> genTypes = bindingGen.generateTypes(context);
55 GeneratedType groupingU = null;
56 GeneratedType groupingX = null;
57 GeneratedType groupingV = null;
59 int groupingUCounter = 0;
60 int groupingXCounter = 0;
61 int groupingVCounter = 0;
63 for (Type type : genTypes) {
64 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
65 GeneratedType genType = (GeneratedType) type;
66 if (genType.getName().equals("GroupingU")) {
69 } else if (genType.getName().equals("GroupingV")) {
72 } else if (genType.getName().equals("GroupingX")) {
79 assertNotNull("Generated type for grouping-U wasn't generated.", groupingU);
80 assertEquals("GroupingU interface generated more than one time.", 1, groupingUCounter);
81 assertEquals("GroupingU is in wrong package.",
82 "org.opendaylight.yang.gen.v1.urn.grouping.dependencies.rev130718", groupingU.getPackageName());
84 assertNotNull("Generated type for grouping-V wasn't generated.", groupingV);
85 assertEquals("GroupingV interface generated more than one time.", 1, groupingVCounter);
86 assertEquals("GroupingV is in wrong package.",
87 "org.opendaylight.yang.gen.v1.urn.grouping.dependencies.rev130718", groupingV.getPackageName());
89 assertNotNull("Generated type for grouping-X wasn't generated.", groupingX);
90 assertEquals("GroupingX interface generated more than one time.", 1, groupingXCounter);
91 assertEquals("GroupingX is in wrong package.",
92 "org.opendaylight.yang.gen.v1.urn.grouping.dependencies.rev130718", groupingX.getPackageName());
94 containsInterface("GroupingV", groupingU);
95 containsInterface("GroupingX", groupingU);
96 containsInterface("GroupingZ", groupingV);
97 containsInterface("GroupingZZ", groupingV);
98 containsInterface("GroupingY", groupingX);
102 public void usesInCaseTest() {
103 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-case.yang");
104 final YangModelParser parser = new YangParserImpl();
105 final Set<Module> modules = parser.parseYangModels(testModels);
106 final SchemaContext context = parser.resolveSchemaContext(modules);
108 assertNotNull(context);
109 final BindingGenerator bindingGen = new BindingGeneratorImpl();
110 final List<Type> genTypes = bindingGen.generateTypes(context);
112 GeneratedType groupingCaseTest = null;
113 int groupingCaseTestCounter = 0;
114 GeneratedType caseC = null;
115 int caseCCounter = 0;
116 for (Type type : genTypes) {
117 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
118 GeneratedType genType = (GeneratedType) type;
119 if (genType.getName().equals("C")) {
122 } else if (genType.getName().equals("GroupingCaseTest")) {
123 groupingCaseTest = genType;
124 groupingCaseTestCounter++;
129 assertNotNull("Generated type for case C wasn't generated.", caseC);
130 assertEquals("Case C interface generated more than one time.", 1, caseCCounter);
132 "Case C is in wrong package.",
133 "org.opendaylight.yang.gen.v1.urn.grouping.uses._case.rev130718.container.with.choicetest.choice.test",
134 caseC.getPackageName());
136 assertNotNull("Generated type for grouping-case-test wasn't generated.", groupingCaseTest);
137 assertEquals("GroupingCaseTest interface generated more than one time.", 1, groupingCaseTestCounter);
138 assertEquals("GroupingCaseTest is in wrong package.",
139 "org.opendaylight.yang.gen.v1.urn.grouping.uses._case.rev130718", groupingCaseTest.getPackageName());
141 containsInterface("GroupingCaseTest", caseC);
142 assertTrue("Case C shouldn't contain any method.", caseC.getMethodDefinitions().isEmpty());
144 assertEquals("Number of method in GroupingCaseTest is incorrect", 1, groupingCaseTest.getMethodDefinitions()
146 containsMethods(groupingCaseTest.getMethodDefinitions(), new NameTypePattern("getLeafGroupingCaseTest1",
151 public void usesInContainerTest() {
152 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-container.yang");
153 final YangModelParser parser = new YangParserImpl();
154 final Set<Module> modules = parser.parseYangModels(testModels);
155 final SchemaContext context = parser.resolveSchemaContext(modules);
157 assertNotNull(context);
158 final BindingGenerator bindingGen = new BindingGeneratorImpl();
159 final List<Type> genTypes = bindingGen.generateTypes(context);
161 int containerTestCount = 0;
162 int groupingContainerTestCounter = 0;
163 GeneratedType containerTest = null;
164 GeneratedType groupingContainerTest = null;
166 for (Type type : genTypes) {
167 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
168 GeneratedType genType = (GeneratedType) type;
169 if (genType.getName().equals("GroupingContainerTest")) {
170 groupingContainerTest = genType;
171 groupingContainerTestCounter++;
172 } else if (genType.getName().equals("ContainerTest")) {
173 containerTest = genType;
174 containerTestCount++;
179 assertNotNull("Generated type for grouping-container-test wasn't generated", groupingContainerTest);
180 assertEquals("GroupingContainerTest interface - incorrect number of occurences", 1,
181 groupingContainerTestCounter);
182 assertEquals("GroupingContainerTest isn't in correct package",
183 "org.opendaylight.yang.gen.v1.urn.grouping.uses.container.rev130718",
184 groupingContainerTest.getPackageName());
186 assertNotNull("Generated type for container-test wasn't generated", containerTest);
187 assertEquals("ContainerTest interface - incorrect number of occurences", 1, containerTestCount);
188 assertEquals("ContainerTest isn't in correct package",
189 "org.opendaylight.yang.gen.v1.urn.grouping.uses.container.rev130718", containerTest.getPackageName());
191 containsInterface("GroupingContainerTest", containerTest);
193 assertEquals("Number of method in GroupingContainerTestis incorrect", 2, groupingContainerTest
194 .getMethodDefinitions().size());
195 assertEquals("Number of method in ContainerTest is incorrect", 1, containerTest.getMethodDefinitions().size());
197 containsMethods(groupingContainerTest.getMethodDefinitions(), new NameTypePattern(
198 "getLeafGroupingContainerTest1", "String"), new NameTypePattern("getLeafGroupingContainerTest2",
201 containsMethods(containerTest.getMethodDefinitions(), new NameTypePattern("getContainerLeafTest", "String"));
205 public void usesInGroupingTest() {
206 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-grouping.yang");
207 final YangModelParser parser = new YangParserImpl();
208 final Set<Module> modules = parser.parseYangModels(testModels);
209 final SchemaContext context = parser.resolveSchemaContext(modules);
211 assertNotNull(context);
212 final BindingGenerator bindingGen = new BindingGeneratorImpl();
213 final List<Type> genTypes = bindingGen.generateTypes(context);
215 int groupingTestCount = 0;
216 int groupingGroupingTestCounter = 0;
217 GeneratedType groupingTest = null;
218 GeneratedType groupingGroupingTest = null;
220 for (Type type : genTypes) {
221 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
222 GeneratedType genType = (GeneratedType) type;
223 if (genType.getName().equals("GroupingGroupingTest")) {
224 groupingGroupingTest = genType;
225 groupingGroupingTestCounter++;
226 } else if (genType.getName().equals("GroupingTest")) {
227 groupingTest = genType;
233 assertNotNull("Generated type for grouping-grouping-test wasn't generated", groupingGroupingTest);
234 assertEquals("GroupingGroupingTest interface - incorrect number of occurences", 1, groupingGroupingTestCounter);
235 assertEquals("GroupingGroupingTest isn't in correct package",
236 "org.opendaylight.yang.gen.v1.urn.grouping.uses.grouping.rev130718",
237 groupingGroupingTest.getPackageName());
239 assertNotNull("Generated type for grouping-test wasn't generated", groupingTest);
240 assertEquals("GroupingTest interface - incorrect number of occurences", 1, groupingTestCount);
241 assertEquals("GroupingTest isn't in correct package",
242 "org.opendaylight.yang.gen.v1.urn.grouping.uses.grouping.rev130718", groupingTest.getPackageName());
244 containsInterface("GroupingGroupingTest", groupingTest);
246 assertEquals("Number of method in GroupingGroupingTest is incorrect", 1, groupingGroupingTest
247 .getMethodDefinitions().size());
248 assertEquals("Number of method in GroupingTest is incorrect", 1, groupingTest.getMethodDefinitions().size());
250 containsMethods(groupingGroupingTest.getMethodDefinitions(), new NameTypePattern("getLeafGroupingGrouping",
253 containsMethods(groupingTest.getMethodDefinitions(), new NameTypePattern("getLeafGroupingTest", "Byte"));
257 public void usesInListTest() {
258 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-list.yang");
259 final YangModelParser parser = new YangParserImpl();
260 final Set<Module> modules = parser.parseYangModels(testModels);
261 final SchemaContext context = parser.resolveSchemaContext(modules);
263 assertNotNull(context);
264 final BindingGenerator bindingGen = new BindingGeneratorImpl();
265 final List<Type> genTypes = bindingGen.generateTypes(context);
267 int listTestCounter = 0;
268 int groupingListTestCounter = 0;
269 int containerGroupingListTestCounter = 0;
270 int listGroupingListTestCounter = 0;
271 GeneratedType listTest = null;
272 GeneratedType groupingListTest = null;
273 GeneratedType containerGroupingListTest = null;
274 GeneratedType listGroupingListTest = null;
276 for (Type type : genTypes) {
277 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
278 GeneratedType genType = (GeneratedType) type;
279 if (genType.getName().equals("GroupingListTest")) {
280 groupingListTest = genType;
281 groupingListTestCounter++;
282 } else if (genType.getName().equals("ListTest")) {
285 } else if (genType.getName().equals("ContainerGroupingListTest")) {
286 containerGroupingListTest = genType;
287 containerGroupingListTestCounter++;
288 } else if (genType.getName().equals("ListGroupingListTest")) {
289 listGroupingListTest = genType;
290 listGroupingListTestCounter++;
295 assertNotNull("Generated type for grouping-list-test wasn't generated", groupingListTest);
296 assertEquals("GroupingListTest interface - incorrect number of occurences", 1, groupingListTestCounter);
297 assertEquals("GroupingListTest isn't in correct package",
298 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev130718", groupingListTest.getPackageName());
300 assertNotNull("Generated type for list-test wasn't generated", listTest);
301 assertEquals("ListTest interface - incorrect number of occurences", 1, listTestCounter);
302 assertEquals("ListTest isn't in correct package",
303 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev130718", listTest.getPackageName());
305 assertNotNull("Generated type for container-grouping-list-test wasn't generated", containerGroupingListTest);
306 assertEquals("ContainerGroupingListTest interface - incorrect number of occurences", 1,
307 containerGroupingListTestCounter);
308 assertEquals("ContainerGroupingListTest isn't in correct package",
309 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev130718.grouping.list.test",
310 containerGroupingListTest.getPackageName());
312 assertNotNull("Generated type for list-grouping-list-test wasn't generated", listGroupingListTest);
313 assertEquals("ListGroupingListTest interface - incorrect number of occurences", 1, listGroupingListTestCounter);
314 assertEquals("ListGroupingListTest isn't in correct package",
315 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev130718.grouping.list.test",
316 listGroupingListTest.getPackageName());
318 containsInterface("GroupingListTest", listTest);
320 assertEquals("Number of method in GroupingListTest is incorrect", 4, groupingListTest.getMethodDefinitions()
322 assertEquals("Number of method in ListTest is incorrect", 1, listTest.getMethodDefinitions().size());
323 assertEquals("Number of method in ContainerGroupingListTest is incorrect", 1, containerGroupingListTest
324 .getMethodDefinitions().size());
325 assertEquals("Number of method in ListGroupingListTest is incorrect", 1, listGroupingListTest
326 .getMethodDefinitions().size());
328 containsMethods(groupingListTest.getMethodDefinitions(), new NameTypePattern("getContainerGroupingListTest",
329 "ContainerGroupingListTest"), new NameTypePattern("getLeafGroupingListTest", "String"),
330 new NameTypePattern("getLeaffllistGroupingListTest", "List<String>"), new NameTypePattern(
331 "getListGroupingListTest", "List<ListGroupingListTest>"));
332 containsMethods(listTest.getMethodDefinitions(), new NameTypePattern("getListLeafTest", "String"));
333 containsMethods(containerGroupingListTest.getMethodDefinitions(), new NameTypePattern(
334 "getLeafContainerGroupingListTest", "Short"));
335 containsMethods(listGroupingListTest.getMethodDefinitions(), new NameTypePattern("getLeafListGroupingListTest",
340 public void usesInModulTest() {
341 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-modul.yang");
342 final YangModelParser parser = new YangParserImpl();
343 final Set<Module> modules = parser.parseYangModels(testModels);
344 final SchemaContext context = parser.resolveSchemaContext(modules);
346 assertNotNull(context);
347 final BindingGenerator bindingGen = new BindingGeneratorImpl();
348 final List<Type> genTypes = bindingGen.generateTypes(context);
350 int groupingModulTestCounter = 0;
351 int groupingUsesModulDataCounter = 0;
352 GeneratedType groupingModulTest = null;
353 GeneratedType groupingUsesModulData = null;
355 for (Type type : genTypes) {
356 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
357 GeneratedType genType = (GeneratedType) type;
358 if (genType.getName().equals("GroupingModulTest")) {
359 groupingModulTest = genType;
360 groupingModulTestCounter++;
361 } else if (genType.getName().equals("GroupingUsesModulData")) {
362 groupingUsesModulData = genType;
363 groupingUsesModulDataCounter++;
368 assertNotNull("Generated type for grouping-list-test wasn't generated", groupingModulTest);
369 assertEquals("GroupingModulTest interface - incorrect number of occurences", 1, groupingModulTestCounter);
370 assertEquals("GroupingModulTest isn't in correct package",
371 "org.opendaylight.yang.gen.v1.urn.grouping.uses.modul.rev130718", groupingModulTest.getPackageName());
373 assertNotNull("Generated type for modul wasn't generated", groupingUsesModulData);
374 assertEquals("GroupingUsesModulData interface - incorrect number of occurences", 1,
375 groupingUsesModulDataCounter);
376 assertEquals("GroupingUsesModulData isn't in correct package",
377 "org.opendaylight.yang.gen.v1.urn.grouping.uses.modul.rev130718",
378 groupingUsesModulData.getPackageName());
380 containsInterface("GroupingModulTest", groupingUsesModulData);
382 assertEquals("Number of method in GroupingUsesModulData is incorrect", 0, groupingUsesModulData
383 .getMethodDefinitions().size());
384 assertEquals("Number of method in GroupingModulTest is incorrect", 2, groupingModulTest.getMethodDefinitions()
387 containsMethods(groupingModulTest.getMethodDefinitions(), new NameTypePattern("getLeafGroupingModulTest",
388 "String"), new NameTypePattern("getLeafGroupingModulTest2", "Short"));
392 public void usesInRpcTest() {
393 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-rpc.yang");
394 final YangModelParser parser = new YangParserImpl();
395 final Set<Module> modules = parser.parseYangModels(testModels);
396 final SchemaContext context = parser.resolveSchemaContext(modules);
398 assertNotNull(context);
399 final BindingGenerator bindingGen = new BindingGeneratorImpl();
400 final List<Type> genTypes = bindingGen.generateTypes(context);
402 int rpcTestInputCounter = 0;
403 int rpcTestOutputCounter = 0;
404 int groupingRpcInputTestCounter = 0;
405 int groupingRpcOutputTestCounter = 0;
406 int containerGroupingRpcInputTestCounter = 0;
407 GeneratedType rpcTestInput = null;
408 GeneratedType rpcTestOutput = null;
409 GeneratedType groupingRpcInputTest = null;
410 GeneratedType groupingRpcOutputTest = null;
411 GeneratedType containerGroupingRpcInputTest = null;
413 for (Type type : genTypes) {
414 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
415 GeneratedType genType = (GeneratedType) type;
416 if (genType.getName().equals("RpcTestInput")) {
417 rpcTestInput = genType;
418 rpcTestInputCounter++;
419 } else if (genType.getName().equals("RpcTestOutput")) {
420 rpcTestOutput = genType;
421 rpcTestOutputCounter++;
422 } else if (genType.getName().equals("GroupingRpcInputTest")) {
423 groupingRpcInputTest = genType;
424 groupingRpcInputTestCounter++;
425 } else if (genType.getName().equals("GroupingRpcOutputTest")) {
426 groupingRpcOutputTest = genType;
427 groupingRpcOutputTestCounter++;
428 } else if (genType.getName().equals("ContainerGroupingRpcInputTest")) {
429 containerGroupingRpcInputTest = genType;
430 containerGroupingRpcInputTestCounter++;
436 assertNotNull("Generated type for RPC test input wasn't generated", rpcTestInput);
437 assertEquals("RpcTestInput interface - incorrect number of occurences", 1, rpcTestInputCounter);
438 assertEquals("RpcTestInput isn't in correct package",
439 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev130718", rpcTestInput.getPackageName());
441 assertNotNull("Generated type for RPC test output wasn't generated", rpcTestOutput);
442 assertEquals("RpcTestOutput interface - incorrect number of occurences", 1, rpcTestOutputCounter);
443 assertEquals("RpcTestOutput isn't in correct package",
444 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev130718", rpcTestOutput.getPackageName());
446 assertNotNull("Generated type for grouping-rpc-input-test wasn't generated", groupingRpcInputTest);
447 assertEquals("RpcTestOutput interface - incorrect number of occurences", 1, groupingRpcInputTestCounter);
448 assertEquals("GroupingRpcInputTest isn't in correct package",
449 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev130718", groupingRpcInputTest.getPackageName());
451 assertNotNull("Generated type for grouping-rpc-output-test wasn't generated", groupingRpcOutputTest);
452 assertEquals("RpcTestOutput interface - incorrect number of occurences", 1, groupingRpcOutputTestCounter);
453 assertEquals("GroupingRpcOutputTest isn't in correct package",
454 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev130718", groupingRpcOutputTest.getPackageName());
456 assertNotNull("Generated type for container-grouping-rpc-input-test wasn't generated",
457 containerGroupingRpcInputTest);
458 assertEquals("ContainerGroupingRpcInputTest interface - incorrect number of occurences", 1,
459 containerGroupingRpcInputTestCounter);
460 assertEquals("ContainerGroupingRpcInputTest isn't in correct package",
461 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev130718.grouping.rpc.input.test",
462 containerGroupingRpcInputTest.getPackageName());
464 containsInterface("GroupingRpcInputTest", rpcTestInput);
465 containsInterface("GroupingRpcOutputTest", rpcTestOutput);
467 assertEquals("Number of method in RpcTestInput is incorrect", 0, rpcTestInput.getMethodDefinitions().size());
468 assertEquals("Number of method in RpcTestOutput is incorrect", 0, rpcTestOutput.getMethodDefinitions().size());
469 assertEquals("Number of method in GroupingRpcInputTest is incorrect", 2, groupingRpcInputTest
470 .getMethodDefinitions().size());
471 assertEquals("Number of method in GroupingRpcOutputTest is incorrect", 1, groupingRpcOutputTest
472 .getMethodDefinitions().size());
473 assertEquals("Number of method in ContainerGroupingRpcInputTest is incorrect", 1, containerGroupingRpcInputTest
474 .getMethodDefinitions().size());
476 containsMethods(groupingRpcInputTest.getMethodDefinitions(), new NameTypePattern(
477 "getContainerGroupingRpcInputTest", "ContainerGroupingRpcInputTest"), new NameTypePattern(
478 "getLeaflistGroupingRpcInputTest", "List<Short>"));
479 containsMethods(groupingRpcOutputTest.getMethodDefinitions(), new NameTypePattern(
480 "getLeafGroupingRpcOutputTest", "Byte"));
481 containsMethods(containerGroupingRpcInputTest.getMethodDefinitions(), new NameTypePattern(
482 "getLeafContainerGroupingRpcInputTest", "String"));
486 public void usesInAugmentTest() {
487 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-augment.yang");
488 final YangModelParser parser = new YangParserImpl();
489 final Set<Module> modules = parser.parseYangModels(testModels);
490 final SchemaContext context = parser.resolveSchemaContext(modules);
492 assertNotNull(context);
493 final BindingGenerator bindingGen = new BindingGeneratorImpl();
494 final List<Type> genTypes = bindingGen.generateTypes(context);
496 GeneratedType containerAugment1 = null;
497 GeneratedType groupingAugmentTest = null;
498 int containerAugment1Counter = 0;
499 int groupingAugmentTestCounter = 0;
501 for (Type type : genTypes) {
502 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
503 GeneratedType genType = (GeneratedType) type;
504 if (genType.getName().equals("ContainerAugment1")) {
505 containerAugment1 = genType;
506 containerAugment1Counter++;
507 } else if (genType.getName().equals("GroupingAugmentTest")) {
508 groupingAugmentTest = genType;
509 groupingAugmentTestCounter++;
514 assertNotNull("Generated type for augment /container-augment wasn't generated.", containerAugment1);
515 assertEquals("ContainerAugment1 interface generated more than one time.", 1, containerAugment1Counter);
516 assertEquals("ContainerAugment1 is in wrong package.",
517 "org.opendaylight.yang.gen.v1.urn.grouping.uses.augment.rev130718", containerAugment1.getPackageName());
519 assertNotNull("Generated type for grouping-augment-test wasn't generated.", groupingAugmentTest);
520 assertEquals("GroupingAugmentTest interface generated more than one time.", 1, groupingAugmentTestCounter);
521 assertEquals("groupingAugmentTest is in wrong package.",
522 "org.opendaylight.yang.gen.v1.urn.grouping.uses.augment.rev130718",
523 groupingAugmentTest.getPackageName());
525 containsInterface("GroupingAugmentTest", containerAugment1);
527 assertEquals("Number of method in GroupingCaseTest is incorrect", 0, containerAugment1.getMethodDefinitions()
530 assertEquals("Number of method in ContainerAugment1 is incorrect", 0, containerAugment1.getMethodDefinitions()
532 assertEquals("Number of method in GroupingCaseTest is incorrect", 1, groupingAugmentTest.getMethodDefinitions()
535 containsMethods(groupingAugmentTest.getMethodDefinitions(), new NameTypePattern("getLeafGroupingAugmentTest",
540 public void usesInNotification() {
541 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-notification.yang");
542 final YangModelParser parser = new YangParserImpl();
543 final Set<Module> modules = parser.parseYangModels(testModels);
544 final SchemaContext context = parser.resolveSchemaContext(modules);
546 assertNotNull(context);
547 final BindingGenerator bindingGen = new BindingGeneratorImpl();
548 final List<Type> genTypes = bindingGen.generateTypes(context);
550 GeneratedType notificationTest = null;
551 GeneratedType groupingNotificationTest = null;
552 GeneratedType containerGroupingNotificationTest = null;
553 int notificationTestCounter = 0;
554 int groupingNotificationTestCounter = 0;
555 int containerGroupingNotificationTestCounter = 0;
557 for (Type type : genTypes) {
558 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
559 GeneratedType genType = (GeneratedType) type;
560 if (genType.getName().equals("NotificationTest")) {
561 notificationTest = genType;
562 notificationTestCounter++;
563 } else if (genType.getName().equals("GroupingNotificationTest")) {
564 groupingNotificationTest = genType;
565 groupingNotificationTestCounter++;
566 } else if (genType.getName().equals("ContainerGroupingNotificationTest")) {
567 containerGroupingNotificationTest = genType;
568 containerGroupingNotificationTestCounter++;
573 assertNotNull("Generated type for notification-test wasn't generated.", notificationTest);
574 assertEquals("NotificationTest interface generated more than one time.", 1, notificationTestCounter);
575 assertEquals("NotificationTest is in wrong package.",
576 "org.opendaylight.yang.gen.v1.urn.grouping.uses.notification.rev130718",
577 notificationTest.getPackageName());
579 assertNotNull("Generated type for grouping-notification-test wasn't generated.", groupingNotificationTest);
580 assertEquals("GroupingNotificationTest interface generated more than one time.", 1,
581 groupingNotificationTestCounter);
582 assertEquals("groupingNotificationTest is in wrong package.",
583 "org.opendaylight.yang.gen.v1.urn.grouping.uses.notification.rev130718",
584 groupingNotificationTest.getPackageName());
586 assertNotNull("Generated type for container-grouping-notification-test wasn't generated.",
587 containerGroupingNotificationTest);
588 assertEquals("ContainerGroupingNotificationTest interface generated more than one time.", 1,
589 containerGroupingNotificationTestCounter);
590 assertEquals("ContainerGroupingNotificationTest is in wrong package.",
591 "org.opendaylight.yang.gen.v1.urn.grouping.uses.notification.rev130718.grouping.notification.test",
592 containerGroupingNotificationTest.getPackageName());
594 containsInterface("GroupingNotificationTest", notificationTest);
596 assertEquals("Number of method in NotificationTest is incorrect", 1, notificationTest.getMethodDefinitions()
598 assertEquals("Number of method in GroupingNotificationTest is incorrect", 2, groupingNotificationTest
599 .getMethodDefinitions().size());
600 assertEquals("Number of method in ContainerGroupingNotificationTest is incorrect", 1,
601 containerGroupingNotificationTest.getMethodDefinitions().size());
603 containsMethods(notificationTest.getMethodDefinitions(), new NameTypePattern("getLeafNotificationTest",
605 containsMethods(groupingNotificationTest.getMethodDefinitions(), new NameTypePattern(
606 "getContainerGroupingNotificationTest", "ContainerGroupingNotificationTest"), new NameTypePattern(
607 "getLeaffllistGroupingNotificationTest", "List<String>"));
608 containsMethods(containerGroupingNotificationTest.getMethodDefinitions(), new NameTypePattern(
609 "getLeafContainerGroupingNotificationTest", "Long"));