2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
8 package org.opendaylight.yangtools.sal.binding.generator.impl;
\r
10 import static org.junit.Assert.*;
\r
12 import java.io.File;
\r
13 import java.util.ArrayList;
\r
14 import java.util.HashSet;
\r
15 import java.util.List;
\r
16 import java.util.Set;
\r
18 import org.junit.BeforeClass;
\r
19 import org.junit.Test;
\r
20 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
\r
21 import org.opendaylight.yangtools.sal.binding.model.api.Type;
\r
22 import org.opendaylight.yangtools.yang.model.api.Module;
\r
23 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
\r
24 import org.opendaylight.yangtools.yang.model.parser.api.YangModelParser;
\r
25 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
\r
27 public class GenTypesSubSetTest {
\r
29 private final static List<File> yangModels = new ArrayList<>();
\r
30 private final static String yangModelsFolder = AugmentedTypeTest.class
\r
31 .getResource("/leafref-test-models").getPath();
\r
34 public static void loadTestResources() {
\r
35 final File augFolder = new File(yangModelsFolder);
\r
37 for (final File fileEntry : augFolder.listFiles()) {
\r
38 if (fileEntry.isFile()) {
\r
39 yangModels.add(fileEntry);
\r
45 public void genTypesFromSubsetOfTwoModulesTest() {
\r
46 final YangModelParser parser = new YangParserImpl();
\r
47 final Set<Module> modules = parser.parseYangModels(yangModels);
\r
48 final SchemaContext context = parser.resolveSchemaContext(modules);
\r
50 final Set<Module> toGenModules = new HashSet<>();
\r
51 for (final Module module : modules) {
\r
52 if (module.getName().equals("abstract-topology")) {
\r
53 toGenModules.add(module);
\r
54 } else if (module.getName().equals("ietf-interfaces")) {
\r
55 toGenModules.add(module);
\r
59 assertEquals("Set of to Generate Modules must contain 2 modules", 2,
\r
60 toGenModules.size());
\r
61 assertNotNull("Schema Context is null", context);
\r
62 final BindingGenerator bindingGen = new BindingGeneratorImpl();
\r
63 final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
\r
64 assertNotNull("genTypes is null", genTypes);
\r
65 assertFalse("genTypes is empty", genTypes.isEmpty());
\r
66 assertEquals("Expected Generated Types from provided sub set of " +
\r
67 "modules should be 23!", 23,
\r
72 public void genTypesFromSubsetOfThreeModulesTest() {
\r
73 final YangModelParser parser = new YangParserImpl();
\r
74 final Set<Module> modules = parser.parseYangModels(yangModels);
\r
75 final SchemaContext context = parser.resolveSchemaContext(modules);
\r
77 final Set<Module> toGenModules = new HashSet<>();
\r
78 for (final Module module : modules) {
\r
79 if (module.getName().equals("abstract-topology")) {
\r
80 toGenModules.add(module);
\r
81 } else if (module.getName().equals("ietf-interfaces")) {
\r
82 toGenModules.add(module);
\r
83 } else if (module.getName().equals("iana-if-type")) {
\r
84 toGenModules.add(module);
\r
88 assertEquals("Set of to Generate Modules must contain 3 modules", 3,
\r
89 toGenModules.size());
\r
91 assertNotNull("Schema Context is null", context);
\r
92 final BindingGenerator bindingGen = new BindingGeneratorImpl();
\r
93 final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
\r
94 assertNotNull("genTypes is null", genTypes);
\r
95 assertFalse("genTypes is empty", genTypes.isEmpty());
\r
96 assertEquals("Expected Generated Types", 24, genTypes.size());
\r