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 org.junit.BeforeClass;
11 import org.junit.Test;
12 import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator;
13 import org.opendaylight.controller.sal.binding.model.api.Type;
14 import org.opendaylight.controller.yang.model.api.Module;
15 import org.opendaylight.controller.yang.model.api.SchemaContext;
16 import org.opendaylight.controller.yang.model.parser.api.YangModelParser;
17 import org.opendaylight.controller.yang.parser.impl.YangParserImpl;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertFalse;
24 import static org.junit.Assert.assertNotNull;
26 public class GenTypesSubSetTest {
28 private final static List<File> yangModels = new ArrayList<>();
29 private final static String yangModelsFolder = AugmentedTypeTest.class
30 .getResource("/leafref-test-models").getPath();
33 public static void loadTestResources() {
34 final File augFolder = new File(yangModelsFolder);
36 for (final File fileEntry : augFolder.listFiles()) {
37 if (fileEntry.isFile()) {
38 yangModels.add(fileEntry);
44 public void genTypesFromSubsetOfTwoModulesTest() {
45 final YangModelParser parser = new YangParserImpl();
46 final Set<Module> modules = parser.parseYangModels(yangModels);
47 final SchemaContext context = parser.resolveSchemaContext(modules);
49 final Set<Module> toGenModules = new HashSet<>();
50 for (final Module module : modules) {
51 if (module.getName().equals("abstract-topology")) {
52 toGenModules.add(module);
53 } else if (module.getName().equals("ietf-interfaces")) {
54 toGenModules.add(module);
58 assertEquals("Set of to Generate Modules must contain 2 modules", 2,
60 assertNotNull("Schema Context is null", context);
61 final BindingGenerator bindingGen = new BindingGeneratorImpl();
62 final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
63 assertNotNull("genTypes is null", genTypes);
64 assertFalse("genTypes is empty", genTypes.isEmpty());
65 assertEquals("Expected Generated Types from provided sub set of " +
66 "modules should be 23!", 25,
71 public void genTypesFromSubsetOfThreeModulesTest() {
72 final YangModelParser parser = new YangParserImpl();
73 final Set<Module> modules = parser.parseYangModels(yangModels);
74 final SchemaContext context = parser.resolveSchemaContext(modules);
76 final Set<Module> toGenModules = new HashSet<>();
77 for (final Module module : modules) {
78 if (module.getName().equals("abstract-topology")) {
79 toGenModules.add(module);
80 } else if (module.getName().equals("ietf-interfaces")) {
81 toGenModules.add(module);
82 } else if (module.getName().equals("iana-if-type")) {
83 toGenModules.add(module);
87 assertEquals("Set of to Generate Modules must contain 3 modules", 3,
90 assertNotNull("Schema Context is null", context);
91 final BindingGenerator bindingGen = new BindingGeneratorImpl();
92 final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
93 assertNotNull("genTypes is null", genTypes);
94 assertFalse("genTypes is empty", genTypes.isEmpty());
95 assertEquals("Expected Generated Types from provided sub set of " +
96 "modules should be 25!", 28, genTypes.size());