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.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.controller.sal.binding.generator.impl.SupportTestUtil.containsInterface;
14 import static org.opendaylight.controller.sal.binding.generator.impl.SupportTestUtil.containsSignatures;
17 import java.util.ArrayList;
18 import java.util.List;
21 import org.junit.Test;
22 import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator;
23 import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
24 import org.opendaylight.controller.sal.binding.model.api.GeneratedType;
25 import org.opendaylight.controller.sal.binding.model.api.Type;
26 import org.opendaylight.yangtools.yang.model.api.Module;
27 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
28 import org.opendaylight.yangtools.yang.model.parser.api.YangModelParser;
29 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
31 public class UsesTest {
33 private static List<File> loadTestResources(String testFile) {
34 final List<File> testModels = new ArrayList<File>();
35 final File listModelFile = new File(UsesTest.class.getResource(testFile).getPath());
36 testModels.add(listModelFile);
41 public void usesInGroupingDependenciesTest() {
42 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-dependencies.yang");
43 final YangModelParser parser = new YangParserImpl();
44 final Set<Module> modules = parser.parseYangModels(testModels);
45 final SchemaContext context = parser.resolveSchemaContext(modules);
47 assertNotNull(context);
48 final BindingGenerator bindingGen = new BindingGeneratorImpl();
49 final List<Type> genTypes = bindingGen.generateTypes(context);
50 GeneratedType groupingU = null;
51 GeneratedType groupingX = null;
52 GeneratedType groupingV = null;
54 int groupingUCounter = 0;
55 int groupingXCounter = 0;
56 int groupingVCounter = 0;
58 for (Type type : genTypes) {
59 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
60 GeneratedType genType = (GeneratedType) type;
61 if (genType.getName().equals("GroupingU")) {
64 } else if (genType.getName().equals("GroupingV")) {
67 } else if (genType.getName().equals("GroupingX")) {
74 assertNotNull("Generated type for grouping-U wasn't generated.", groupingU);
75 assertEquals("GroupingU interface generated more than one time.", 1, groupingUCounter);
76 assertEquals("GroupingU is in wrong package.",
77 "org.opendaylight.yang.gen.v1.urn.grouping.dependencies.rev2013718", groupingU.getPackageName());
79 assertNotNull("Generated type for grouping-V wasn't generated.", groupingV);
80 assertEquals("GroupingV interface generated more than one time.", 1, groupingVCounter);
81 assertEquals("GroupingV is in wrong package.",
82 "org.opendaylight.yang.gen.v1.urn.grouping.dependencies.rev2013718", groupingV.getPackageName());
84 assertNotNull("Generated type for grouping-X wasn't generated.", groupingX);
85 assertEquals("GroupingX interface generated more than one time.", 1, groupingXCounter);
86 assertEquals("GroupingX is in wrong package.",
87 "org.opendaylight.yang.gen.v1.urn.grouping.dependencies.rev2013718", groupingX.getPackageName());
89 containsInterface("GroupingV", groupingU);
90 containsInterface("GroupingX", groupingU);
91 containsInterface("GroupingZ", groupingV);
92 containsInterface("GroupingZZ", groupingV);
93 containsInterface("GroupingY", groupingX);
97 public void usesInCaseTest() {
98 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-case.yang");
99 final YangModelParser parser = new YangParserImpl();
100 final Set<Module> modules = parser.parseYangModels(testModels);
101 final SchemaContext context = parser.resolveSchemaContext(modules);
103 assertNotNull(context);
104 final BindingGenerator bindingGen = new BindingGeneratorImpl();
105 final List<Type> genTypes = bindingGen.generateTypes(context);
107 GeneratedType groupingCaseTest = null;
108 int groupingCaseTestCounter = 0;
109 GeneratedType caseC = null;
110 int caseCCounter = 0;
111 for (Type type : genTypes) {
112 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
113 GeneratedType genType = (GeneratedType) type;
114 if (genType.getName().equals("C")) {
117 } else if (genType.getName().equals("GroupingCaseTest")) {
118 groupingCaseTest = genType;
119 groupingCaseTestCounter++;
124 assertNotNull("Generated type for case C wasn't generated.", caseC);
125 assertEquals("Case C interface generated more than one time.", 1, caseCCounter);
127 "Case C is in wrong package.",
128 "org.opendaylight.yang.gen.v1.urn.grouping.uses._case.rev2013718.container.with.choicetest.choice.test",
129 caseC.getPackageName());
131 assertNotNull("Generated type for grouping-case-test wasn't generated.", groupingCaseTest);
132 assertEquals("GroupingCaseTest interface generated more than one time.", 1, groupingCaseTestCounter);
133 assertEquals("GroupingCaseTest is in wrong package.",
134 "org.opendaylight.yang.gen.v1.urn.grouping.uses._case.rev2013718", groupingCaseTest.getPackageName());
136 containsInterface("GroupingCaseTest", caseC);
137 assertTrue("Case C shouldn't contain any method.", caseC.getMethodDefinitions().isEmpty());
139 assertEquals("Number of method in GroupingCaseTest is incorrect", 1, groupingCaseTest.getMethodDefinitions()
141 containsSignatures(groupingCaseTest.getMethodDefinitions(), new MethodSignaturePattern(
142 "getLeafGroupingCaseTest1", "String"));
146 public void usesInContainerTest() {
147 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-container.yang");
148 final YangModelParser parser = new YangParserImpl();
149 final Set<Module> modules = parser.parseYangModels(testModels);
150 final SchemaContext context = parser.resolveSchemaContext(modules);
152 assertNotNull(context);
153 final BindingGenerator bindingGen = new BindingGeneratorImpl();
154 final List<Type> genTypes = bindingGen.generateTypes(context);
156 int containerTestCount = 0;
157 int groupingContainerTestCounter = 0;
158 GeneratedType containerTest = null;
159 GeneratedType groupingContainerTest = null;
161 for (Type type : genTypes) {
162 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
163 GeneratedType genType = (GeneratedType) type;
164 if (genType.getName().equals("GroupingContainerTest")) {
165 groupingContainerTest = genType;
166 groupingContainerTestCounter++;
167 } else if (genType.getName().equals("ContainerTest")) {
168 containerTest = genType;
169 containerTestCount++;
174 assertNotNull("Generated type for grouping-container-test wasn't generated", groupingContainerTest);
175 assertEquals("GroupingContainerTest interface - incorrect number of occurences", 1,
176 groupingContainerTestCounter);
177 assertEquals("GroupingContainerTest isn't in correct package",
178 "org.opendaylight.yang.gen.v1.urn.grouping.uses.container.rev2013718",
179 groupingContainerTest.getPackageName());
181 assertNotNull("Generated type for container-test wasn't generated", containerTest);
182 assertEquals("ContainerTest interface - incorrect number of occurences", 1, containerTestCount);
183 assertEquals("ContainerTest isn't in correct package",
184 "org.opendaylight.yang.gen.v1.urn.grouping.uses.container.rev2013718", containerTest.getPackageName());
186 containsInterface("GroupingContainerTest", containerTest);
188 assertEquals("Number of method in GroupingContainerTestis incorrect", 2, groupingContainerTest
189 .getMethodDefinitions().size());
190 assertEquals("Number of method in ContainerTest is incorrect", 1, containerTest.getMethodDefinitions().size());
192 containsSignatures(groupingContainerTest.getMethodDefinitions(), new MethodSignaturePattern(
193 "getLeafGroupingContainerTest1", "String"), new MethodSignaturePattern("getLeafGroupingContainerTest2",
196 containsSignatures(containerTest.getMethodDefinitions(), new MethodSignaturePattern("getContainerLeafTest",
201 public void usesInGroupingTest() {
202 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-grouping.yang");
203 final YangModelParser parser = new YangParserImpl();
204 final Set<Module> modules = parser.parseYangModels(testModels);
205 final SchemaContext context = parser.resolveSchemaContext(modules);
207 assertNotNull(context);
208 final BindingGenerator bindingGen = new BindingGeneratorImpl();
209 final List<Type> genTypes = bindingGen.generateTypes(context);
211 int groupingTestCount = 0;
212 int groupingGroupingTestCounter = 0;
213 GeneratedType groupingTest = null;
214 GeneratedType groupingGroupingTest = null;
216 for (Type type : genTypes) {
217 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
218 GeneratedType genType = (GeneratedType) type;
219 if (genType.getName().equals("GroupingGroupingTest")) {
220 groupingGroupingTest = genType;
221 groupingGroupingTestCounter++;
222 } else if (genType.getName().equals("GroupingTest")) {
223 groupingTest = genType;
229 assertNotNull("Generated type for grouping-grouping-test wasn't generated", groupingGroupingTest);
230 assertEquals("GroupingGroupingTest interface - incorrect number of occurences", 1, groupingGroupingTestCounter);
231 assertEquals("GroupingGroupingTest isn't in correct package",
232 "org.opendaylight.yang.gen.v1.urn.grouping.uses.grouping.rev2013718",
233 groupingGroupingTest.getPackageName());
235 assertNotNull("Generated type for grouping-test wasn't generated", groupingTest);
236 assertEquals("GroupingTest interface - incorrect number of occurences", 1, groupingTestCount);
237 assertEquals("GroupingTest isn't in correct package",
238 "org.opendaylight.yang.gen.v1.urn.grouping.uses.grouping.rev2013718", groupingTest.getPackageName());
240 containsInterface("GroupingGroupingTest", groupingTest);
242 assertEquals("Number of method in GroupingGroupingTest is incorrect", 1, groupingGroupingTest
243 .getMethodDefinitions().size());
244 assertEquals("Number of method in GroupingTest is incorrect", 1, groupingTest.getMethodDefinitions().size());
246 containsSignatures(groupingGroupingTest.getMethodDefinitions(), new MethodSignaturePattern(
247 "getLeafGroupingGrouping", "String"));
249 containsSignatures(groupingTest.getMethodDefinitions(), new MethodSignaturePattern("getLeafGroupingTest",
254 public void usesInListTest() {
255 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-list.yang");
256 final YangModelParser parser = new YangParserImpl();
257 final Set<Module> modules = parser.parseYangModels(testModels);
258 final SchemaContext context = parser.resolveSchemaContext(modules);
260 assertNotNull(context);
261 final BindingGenerator bindingGen = new BindingGeneratorImpl();
262 final List<Type> genTypes = bindingGen.generateTypes(context);
264 int listTestCounter = 0;
265 int groupingListTestCounter = 0;
266 int containerGroupingListTestCounter = 0;
267 int listGroupingListTestCounter = 0;
268 GeneratedType listTest = null;
269 GeneratedType groupingListTest = null;
270 GeneratedType containerGroupingListTest = null;
271 GeneratedType listGroupingListTest = null;
273 for (Type type : genTypes) {
274 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
275 GeneratedType genType = (GeneratedType) type;
276 if (genType.getName().equals("GroupingListTest")) {
277 groupingListTest = genType;
278 groupingListTestCounter++;
279 } else if (genType.getName().equals("ListTest")) {
282 } else if (genType.getName().equals("ContainerGroupingListTest")) {
283 containerGroupingListTest = genType;
284 containerGroupingListTestCounter++;
285 } else if (genType.getName().equals("ListGroupingListTest")) {
286 listGroupingListTest = genType;
287 listGroupingListTestCounter++;
292 assertNotNull("Generated type for grouping-list-test wasn't generated", groupingListTest);
293 assertEquals("GroupingListTest interface - incorrect number of occurences", 1, groupingListTestCounter);
294 assertEquals("GroupingListTest isn't in correct package",
295 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev2013718", groupingListTest.getPackageName());
297 assertNotNull("Generated type for list-test wasn't generated", listTest);
298 assertEquals("ListTest interface - incorrect number of occurences", 1, listTestCounter);
299 assertEquals("ListTest isn't in correct package",
300 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev2013718", listTest.getPackageName());
302 assertNotNull("Generated type for container-grouping-list-test wasn't generated", containerGroupingListTest);
303 assertEquals("ContainerGroupingListTest interface - incorrect number of occurences", 1,
304 containerGroupingListTestCounter);
305 assertEquals("ContainerGroupingListTest isn't in correct package",
306 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev2013718.grouping.list.test",
307 containerGroupingListTest.getPackageName());
309 assertNotNull("Generated type for list-grouping-list-test wasn't generated", listGroupingListTest);
310 assertEquals("ListGroupingListTest interface - incorrect number of occurences", 1, listGroupingListTestCounter);
311 assertEquals("ListGroupingListTest isn't in correct package",
312 "org.opendaylight.yang.gen.v1.urn.grouping.uses.list.rev2013718.grouping.list.test",
313 listGroupingListTest.getPackageName());
315 containsInterface("GroupingListTest", listTest);
317 assertEquals("Number of method in GroupingListTest is incorrect", 4, groupingListTest.getMethodDefinitions()
319 assertEquals("Number of method in ListTest is incorrect", 1, listTest.getMethodDefinitions().size());
320 assertEquals("Number of method in ContainerGroupingListTest is incorrect", 1, containerGroupingListTest
321 .getMethodDefinitions().size());
322 assertEquals("Number of method in ListGroupingListTest is incorrect", 1, listGroupingListTest
323 .getMethodDefinitions().size());
325 containsSignatures(groupingListTest.getMethodDefinitions(), new MethodSignaturePattern(
326 "getContainerGroupingListTest", "ContainerGroupingListTest"), new MethodSignaturePattern(
327 "getLeafGroupingListTest", "String"), new MethodSignaturePattern("getLeaffllistGroupingListTest",
328 "List<String>"), new MethodSignaturePattern("getListGroupingListTest", "List<ListGroupingListTest>"));
329 containsSignatures(listTest.getMethodDefinitions(), new MethodSignaturePattern("getListLeafTest", "String"));
330 containsSignatures(containerGroupingListTest.getMethodDefinitions(), new MethodSignaturePattern(
331 "getLeafContainerGroupingListTest", "Short"));
332 containsSignatures(listGroupingListTest.getMethodDefinitions(), new MethodSignaturePattern(
333 "getLeafListGroupingListTest", "Integer"));
337 public void usesInModulTest() {
338 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-modul.yang");
339 final YangModelParser parser = new YangParserImpl();
340 final Set<Module> modules = parser.parseYangModels(testModels);
341 final SchemaContext context = parser.resolveSchemaContext(modules);
343 assertNotNull(context);
344 final BindingGenerator bindingGen = new BindingGeneratorImpl();
345 final List<Type> genTypes = bindingGen.generateTypes(context);
347 int groupingModulTestCounter = 0;
348 int groupingUsesModulDataCounter = 0;
349 GeneratedType groupingModulTest = null;
350 GeneratedType groupingUsesModulData = null;
352 for (Type type : genTypes) {
353 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
354 GeneratedType genType = (GeneratedType) type;
355 if (genType.getName().equals("GroupingModulTest")) {
356 groupingModulTest = genType;
357 groupingModulTestCounter++;
358 } else if (genType.getName().equals("GroupingUsesModulData")) {
359 groupingUsesModulData = genType;
360 groupingUsesModulDataCounter++;
365 assertNotNull("Generated type for grouping-list-test wasn't generated", groupingModulTest);
366 assertEquals("GroupingModulTest interface - incorrect number of occurences", 1, groupingModulTestCounter);
367 assertEquals("GroupingModulTest isn't in correct package",
368 "org.opendaylight.yang.gen.v1.urn.grouping.uses.modul.rev2013718", groupingModulTest.getPackageName());
370 assertNotNull("Generated type for modul wasn't generated", groupingUsesModulData);
371 assertEquals("GroupingUsesModulData interface - incorrect number of occurences", 1,
372 groupingUsesModulDataCounter);
373 assertEquals("GroupingUsesModulData isn't in correct package",
374 "org.opendaylight.yang.gen.v1.urn.grouping.uses.modul.rev2013718",
375 groupingUsesModulData.getPackageName());
377 containsInterface("GroupingModulTest", groupingUsesModulData);
379 assertEquals("Number of method in GroupingUsesModulData is incorrect", 0, groupingUsesModulData
380 .getMethodDefinitions().size());
381 assertEquals("Number of method in GroupingModulTest is incorrect", 2, groupingModulTest.getMethodDefinitions()
384 containsSignatures(groupingModulTest.getMethodDefinitions(), new MethodSignaturePattern(
385 "getLeafGroupingModulTest", "String"), new MethodSignaturePattern("getLeafGroupingModulTest2", "Short"));
389 public void usesInRpcTest() {
390 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-rpc.yang");
391 final YangModelParser parser = new YangParserImpl();
392 final Set<Module> modules = parser.parseYangModels(testModels);
393 final SchemaContext context = parser.resolveSchemaContext(modules);
395 assertNotNull(context);
396 final BindingGenerator bindingGen = new BindingGeneratorImpl();
397 final List<Type> genTypes = bindingGen.generateTypes(context);
399 int rpcTestInputCounter = 0;
400 int rpcTestOutputCounter = 0;
401 int groupingRpcInputTestCounter = 0;
402 int groupingRpcOutputTestCounter = 0;
403 int containerGroupingRpcInputTestCounter = 0;
404 GeneratedType rpcTestInput = null;
405 GeneratedType rpcTestOutput = null;
406 GeneratedType groupingRpcInputTest = null;
407 GeneratedType groupingRpcOutputTest = null;
408 GeneratedType containerGroupingRpcInputTest = null;
410 for (Type type : genTypes) {
411 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
412 GeneratedType genType = (GeneratedType) type;
413 if (genType.getName().equals("RpcTestInput")) {
414 rpcTestInput = genType;
415 rpcTestInputCounter++;
416 } else if (genType.getName().equals("RpcTestOutput")) {
417 rpcTestOutput = genType;
418 rpcTestOutputCounter++;
419 } else if (genType.getName().equals("GroupingRpcInputTest")) {
420 groupingRpcInputTest = genType;
421 groupingRpcInputTestCounter++;
422 } else if (genType.getName().equals("GroupingRpcOutputTest")) {
423 groupingRpcOutputTest = genType;
424 groupingRpcOutputTestCounter++;
425 } else if (genType.getName().equals("ContainerGroupingRpcInputTest")) {
426 containerGroupingRpcInputTest = genType;
427 containerGroupingRpcInputTestCounter++;
433 assertNotNull("Generated type for RPC test input wasn't generated", rpcTestInput);
434 assertEquals("RpcTestInput interface - incorrect number of occurences", 1, rpcTestInputCounter);
435 assertEquals("RpcTestInput isn't in correct package",
436 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev2013718", rpcTestInput.getPackageName());
438 assertNotNull("Generated type for RPC test output wasn't generated", rpcTestOutput);
439 assertEquals("RpcTestOutput interface - incorrect number of occurences", 1, rpcTestOutputCounter);
440 assertEquals("RpcTestOutput isn't in correct package",
441 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev2013718", rpcTestOutput.getPackageName());
443 assertNotNull("Generated type for grouping-rpc-input-test wasn't generated", groupingRpcInputTest);
444 assertEquals("RpcTestOutput interface - incorrect number of occurences", 1, groupingRpcInputTestCounter);
445 assertEquals("GroupingRpcInputTest isn't in correct package",
446 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev2013718", groupingRpcInputTest.getPackageName());
448 assertNotNull("Generated type for grouping-rpc-output-test wasn't generated", groupingRpcOutputTest);
449 assertEquals("RpcTestOutput interface - incorrect number of occurences", 1, groupingRpcOutputTestCounter);
450 assertEquals("GroupingRpcOutputTest isn't in correct package",
451 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev2013718", groupingRpcOutputTest.getPackageName());
453 assertNotNull("Generated type for container-grouping-rpc-input-test wasn't generated",
454 containerGroupingRpcInputTest);
455 assertEquals("ContainerGroupingRpcInputTest interface - incorrect number of occurences", 1,
456 containerGroupingRpcInputTestCounter);
457 assertEquals("ContainerGroupingRpcInputTest isn't in correct package",
458 "org.opendaylight.yang.gen.v1.urn.grouping.uses.rpc.rev2013718.grouping.rpc.input.test",
459 containerGroupingRpcInputTest.getPackageName());
461 containsInterface("GroupingRpcInputTest", rpcTestInput);
462 containsInterface("GroupingRpcOutputTest", rpcTestOutput);
464 assertEquals("Number of method in RpcTestInput is incorrect", 0, rpcTestInput.getMethodDefinitions().size());
465 assertEquals("Number of method in RpcTestOutput is incorrect", 0, rpcTestOutput.getMethodDefinitions().size());
466 assertEquals("Number of method in GroupingRpcInputTest is incorrect", 2, groupingRpcInputTest
467 .getMethodDefinitions().size());
468 assertEquals("Number of method in GroupingRpcOutputTest is incorrect", 1, groupingRpcOutputTest
469 .getMethodDefinitions().size());
470 assertEquals("Number of method in ContainerGroupingRpcInputTest is incorrect", 1, containerGroupingRpcInputTest
471 .getMethodDefinitions().size());
473 containsSignatures(groupingRpcInputTest.getMethodDefinitions(), new MethodSignaturePattern(
474 "getContainerGroupingRpcInputTest", "ContainerGroupingRpcInputTest"), new MethodSignaturePattern(
475 "getLeaflistGroupingRpcInputTest", "List<Short>"));
476 containsSignatures(groupingRpcOutputTest.getMethodDefinitions(), new MethodSignaturePattern(
477 "getLeafGroupingRpcOutputTest", "Byte"));
478 containsSignatures(containerGroupingRpcInputTest.getMethodDefinitions(), new MethodSignaturePattern(
479 "getLeafContainerGroupingRpcInputTest", "String"));
483 public void usesInAugmentTest() {
484 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-augment.yang");
485 final YangModelParser parser = new YangParserImpl();
486 final Set<Module> modules = parser.parseYangModels(testModels);
487 final SchemaContext context = parser.resolveSchemaContext(modules);
489 assertNotNull(context);
490 final BindingGenerator bindingGen = new BindingGeneratorImpl();
491 final List<Type> genTypes = bindingGen.generateTypes(context);
493 GeneratedType containerAugment1 = null;
494 GeneratedType groupingAugmentTest = null;
495 int containerAugment1Counter = 0;
496 int groupingAugmentTestCounter = 0;
498 for (Type type : genTypes) {
499 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
500 GeneratedType genType = (GeneratedType) type;
501 if (genType.getName().equals("ContainerAugment1")) {
502 containerAugment1 = genType;
503 containerAugment1Counter++;
504 } else if (genType.getName().equals("GroupingAugmentTest")) {
505 groupingAugmentTest = genType;
506 groupingAugmentTestCounter++;
511 assertNotNull("Generated type for augment /container-augment wasn't generated.", containerAugment1);
512 assertEquals("ContainerAugment1 interface generated more than one time.", 1, containerAugment1Counter);
513 assertEquals("ContainerAugment1 is in wrong package.",
514 "org.opendaylight.yang.gen.v1.urn.grouping.uses.augment.rev2013718", containerAugment1.getPackageName());
516 assertNotNull("Generated type for grouping-augment-test wasn't generated.", groupingAugmentTest);
517 assertEquals("GroupingAugmentTest interface generated more than one time.", 1, groupingAugmentTestCounter);
518 assertEquals("groupingAugmentTest is in wrong package.",
519 "org.opendaylight.yang.gen.v1.urn.grouping.uses.augment.rev2013718",
520 groupingAugmentTest.getPackageName());
522 containsInterface("GroupingAugmentTest", containerAugment1);
524 assertEquals("Number of method in GroupingCaseTest is incorrect", 0, containerAugment1.getMethodDefinitions()
527 assertEquals("Number of method in ContainerAugment1 is incorrect", 0, containerAugment1.getMethodDefinitions()
529 assertEquals("Number of method in GroupingCaseTest is incorrect", 1, groupingAugmentTest.getMethodDefinitions()
532 containsSignatures(groupingAugmentTest.getMethodDefinitions(), new MethodSignaturePattern(
533 "getLeafGroupingAugmentTest", "String"));
537 public void usesInNotification() {
538 List<File> testModels = loadTestResources("/uses-of-grouping/uses-of-grouping-notification.yang");
539 final YangModelParser parser = new YangParserImpl();
540 final Set<Module> modules = parser.parseYangModels(testModels);
541 final SchemaContext context = parser.resolveSchemaContext(modules);
543 assertNotNull(context);
544 final BindingGenerator bindingGen = new BindingGeneratorImpl();
545 final List<Type> genTypes = bindingGen.generateTypes(context);
547 GeneratedType notificationTest = null;
548 GeneratedType groupingNotificationTest = null;
549 GeneratedType containerGroupingNotificationTest = null;
550 int notificationTestCounter = 0;
551 int groupingNotificationTestCounter = 0;
552 int containerGroupingNotificationTestCounter = 0;
554 for (Type type : genTypes) {
555 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
556 GeneratedType genType = (GeneratedType) type;
557 if (genType.getName().equals("NotificationTest")) {
558 notificationTest = genType;
559 notificationTestCounter++;
560 } else if (genType.getName().equals("GroupingNotificationTest")) {
561 groupingNotificationTest = genType;
562 groupingNotificationTestCounter++;
563 } else if (genType.getName().equals("ContainerGroupingNotificationTest")) {
564 containerGroupingNotificationTest = genType;
565 containerGroupingNotificationTestCounter++;
570 assertNotNull("Generated type for notification-test wasn't generated.", notificationTest);
571 assertEquals("NotificationTest interface generated more than one time.", 1, notificationTestCounter);
572 assertEquals("NotificationTest is in wrong package.",
573 "org.opendaylight.yang.gen.v1.urn.grouping.uses.notification.rev2013718",
574 notificationTest.getPackageName());
576 assertNotNull("Generated type for grouping-notification-test wasn't generated.", groupingNotificationTest);
577 assertEquals("GroupingNotificationTest interface generated more than one time.", 1,
578 groupingNotificationTestCounter);
579 assertEquals("groupingNotificationTest is in wrong package.",
580 "org.opendaylight.yang.gen.v1.urn.grouping.uses.notification.rev2013718",
581 groupingNotificationTest.getPackageName());
583 assertNotNull("Generated type for container-grouping-notification-test wasn't generated.",
584 containerGroupingNotificationTest);
585 assertEquals("ContainerGroupingNotificationTest interface generated more than one time.", 1,
586 containerGroupingNotificationTestCounter);
587 assertEquals("ContainerGroupingNotificationTest is in wrong package.",
588 "org.opendaylight.yang.gen.v1.urn.grouping.uses.notification.rev2013718.grouping.notification.test",
589 containerGroupingNotificationTest.getPackageName());
591 containsInterface("GroupingNotificationTest", notificationTest);
593 assertEquals("Number of method in NotificationTest is incorrect", 1, notificationTest.getMethodDefinitions()
595 assertEquals("Number of method in GroupingNotificationTest is incorrect", 2, groupingNotificationTest
596 .getMethodDefinitions().size());
597 assertEquals("Number of method in ContainerGroupingNotificationTest is incorrect", 1,
598 containerGroupingNotificationTest.getMethodDefinitions().size());
600 containsSignatures(notificationTest.getMethodDefinitions(), new MethodSignaturePattern(
601 "getLeafNotificationTest", "String"));
602 containsSignatures(groupingNotificationTest.getMethodDefinitions(), new MethodSignaturePattern(
603 "getContainerGroupingNotificationTest", "ContainerGroupingNotificationTest"),
604 new MethodSignaturePattern("getLeaffllistGroupingNotificationTest", "List<String>"));
605 containsSignatures(containerGroupingNotificationTest.getMethodDefinitions(), new MethodSignaturePattern(
606 "getLeafContainerGroupingNotificationTest", "Long"));