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