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.assertEquals;
\r
11 import static org.junit.Assert.assertFalse;
\r
12 import static org.junit.Assert.assertNotNull;
\r
14 import java.io.File;
\r
15 import java.net.URISyntaxException;
\r
16 import java.net.URL;
\r
17 import java.util.ArrayList;
\r
18 import java.util.HashSet;
\r
19 import java.util.List;
\r
20 import java.util.Set;
\r
22 import org.junit.BeforeClass;
\r
23 import org.junit.Test;
\r
24 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
\r
25 import org.opendaylight.yangtools.sal.binding.model.api.Type;
\r
26 import org.opendaylight.yangtools.yang.model.api.Module;
\r
27 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
\r
28 import org.opendaylight.yangtools.yang.model.parser.api.YangModelParser;
\r
29 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
\r
31 public class GenTypesSubSetTest {
\r
33 private final static List<File> yangModels = new ArrayList<>();
\r
34 private final static URL yangModelsFolder = AugmentedTypeTest.class
\r
35 .getResource("/leafref-test-models");
\r
38 public static void loadTestResources() throws URISyntaxException {
\r
39 final File augFolder = new File(yangModelsFolder.toURI());
\r
41 for (final File fileEntry : augFolder.listFiles()) {
\r
42 if (fileEntry.isFile()) {
\r
43 yangModels.add(fileEntry);
\r
49 public void genTypesFromSubsetOfTwoModulesTest() {
\r
50 final YangModelParser parser = new YangParserImpl();
\r
51 final Set<Module> modules = parser.parseYangModels(yangModels);
\r
52 final SchemaContext context = parser.resolveSchemaContext(modules);
\r
54 final Set<Module> toGenModules = new HashSet<>();
\r
55 for (final Module module : modules) {
\r
56 if (module.getName().equals("abstract-topology")) {
\r
57 toGenModules.add(module);
\r
58 } else if (module.getName().equals("ietf-interfaces")) {
\r
59 toGenModules.add(module);
\r
63 assertEquals("Set of to Generate Modules must contain 2 modules", 2,
\r
64 toGenModules.size());
\r
65 assertNotNull("Schema Context is null", context);
\r
66 final BindingGenerator bindingGen = new BindingGeneratorImpl();
\r
67 final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
\r
68 assertNotNull("genTypes is null", genTypes);
\r
69 assertFalse("genTypes is empty", genTypes.isEmpty());
\r
70 assertEquals("Expected Generated Types from provided sub set of " +
\r
71 "modules should be 23!", 23,
\r
76 public void genTypesFromSubsetOfThreeModulesTest() {
\r
77 final YangModelParser parser = new YangParserImpl();
\r
78 final Set<Module> modules = parser.parseYangModels(yangModels);
\r
79 final SchemaContext context = parser.resolveSchemaContext(modules);
\r
81 final Set<Module> toGenModules = new HashSet<>();
\r
82 for (final Module module : modules) {
\r
83 if (module.getName().equals("abstract-topology")) {
\r
84 toGenModules.add(module);
\r
85 } else if (module.getName().equals("ietf-interfaces")) {
\r
86 toGenModules.add(module);
\r
87 } else if (module.getName().equals("iana-if-type")) {
\r
88 toGenModules.add(module);
\r
92 assertEquals("Set of to Generate Modules must contain 3 modules", 3,
\r
93 toGenModules.size());
\r
95 assertNotNull("Schema Context is null", context);
\r
96 final BindingGenerator bindingGen = new BindingGeneratorImpl();
\r
97 final List<Type> genTypes = bindingGen.generateTypes(context, toGenModules);
\r
98 assertNotNull("genTypes is null", genTypes);
\r
99 assertFalse("genTypes is empty", genTypes.isEmpty());
\r
100 assertEquals("Expected Generated Types", 24, genTypes.size());
\r