Remove yang-test
[controller.git] / opendaylight / config / yang-jmx-generator / src / test / java / org / opendaylight / controller / config / yangjmxgenerator / ModuleMXBeanEntryNameConflictTest.java
index cac0ac705f216cc0838e86d841b9d2e25bc2f769..54a980abfa41cfa597e29e4977626151f53eb325 100644 (file)
@@ -10,132 +10,87 @@ package org.opendaylight.controller.config.yangjmxgenerator;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-
+import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.NameConflictException;
 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.YangModelSearchUtils;
-import org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl;
-import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.mdsal.binding.yang.types.TypeProviderImpl;
+import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Preconditions;
-
 public class ModuleMXBeanEntryNameConflictTest extends AbstractYangTest {
 
-    private static final Logger logger = LoggerFactory
-            .getLogger(ModuleMXBeanEntryNameConflictTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ModuleMXBeanEntryNameConflictTest.class);
 
     public static final String PACKAGE_NAME = "pack2";
-    Map<File, String> testedFilesToYangModules = new HashMap<>();
-    Map<String, String> testedYangModulesToExpectedConflictingName = new HashMap<>();
-
-    @Ignore
-    @Test
-    public void testNameConflicts() throws Exception {
-        prepareSamples();
-        prepareExceptionAssertions();
-
-        for (Map.Entry<File, String> currentTestEntry : testedFilesToYangModules
-                .entrySet()) {
-            final String moduleName = currentTestEntry.getValue();
-            final File yangFile = currentTestEntry.getKey();
-            Module testedModule = loadYangs(yangFile, moduleName);
-
-            try {
-                logger.debug("Testing {}", yangFile);
-                ModuleMXBeanEntry.create(testedModule,
-                        new HashMap<QName, ServiceInterfaceEntry>(), context,
-                        new TypeProviderWrapper(new TypeProviderImpl(context)),
-                        PACKAGE_NAME);
-                fail(yangFile.toString()
-                        + " did not cause a name conflict and should");
-            } catch (NameConflictException e) {
-                assertEquals(
-                        testedYangModulesToExpectedConflictingName
-                                .get(moduleName),
-                        e.getConflictingName());
-            }
-        }
-    }
-
-    private void prepareSamples() {
-        File first = new File(getClass().getResource(
-                "/duplicates/config-test-duplicate-attribute-in-list.yang")
-                .getFile());
-        File dir = first.getParentFile();
 
-        for (File testYang : dir.listFiles()) {
-            String moduleName = getYangModuleName(testYang.getName());
-            testedFilesToYangModules.put(testYang, moduleName);
-        }
-    }
-
-    private void prepareExceptionAssertions() {
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-duplicate-attribute", "DtoA");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-duplicate-attribute-in-list", "DtoA");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-duplicate-attribute-runtime-bean", "DtoA");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-generated-attributes-name-conflict", "StateB");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-runtime-bean-list-name-conflict",
+    private final List<String> testedModules = ImmutableList.of(
+        "config-test-duplicate-attribute-in-list",
+        "config-test-duplicate-attribute-in-runtime-and-mxbean",
+        "config-test-duplicate-attribute-runtime-bean",
+        "config-test-duplicate-attribute",
+        "config-test-generated-attributes-name-conflict",
+        "config-test-runtime-bean-list-name-conflict2",
+        "config-test-runtime-bean-list-name-conflict",
+        "config-test-runtime-bean-name-conflict2",
+        "config-test-runtime-bean-name-conflict");
+    private final Map<String, String> testedYangModulesToExpectedConflictingName = new HashMap<>();
+
+    @Before
+    public void setup() {
+        testedYangModulesToExpectedConflictingName.put("config-test-duplicate-attribute", "DtoA");
+        testedYangModulesToExpectedConflictingName.put("config-test-duplicate-attribute-in-list", "DtoA");
+        testedYangModulesToExpectedConflictingName.put("config-test-duplicate-attribute-runtime-bean", "DtoA");
+        testedYangModulesToExpectedConflictingName.put("config-test-generated-attributes-name-conflict", "StateB");
+        testedYangModulesToExpectedConflictingName.put("config-test-runtime-bean-list-name-conflict",
+                "StateARuntimeMXBean");
+        testedYangModulesToExpectedConflictingName.put("config-test-runtime-bean-list-name-conflict2",
                 "StateARuntimeMXBean");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-runtime-bean-list-name-conflict2",
+        testedYangModulesToExpectedConflictingName.put("config-test-runtime-bean-name-conflict",
                 "StateARuntimeMXBean");
-        testedYangModulesToExpectedConflictingName
-                .put("config-test-runtime-bean-name-conflict", "StateARuntimeMXBean");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-runtime-bean-name-conflict2",
+        testedYangModulesToExpectedConflictingName.put("config-test-runtime-bean-name-conflict2",
                 "StateARuntimeMXBean");
-        testedYangModulesToExpectedConflictingName.put(
-                "config-test-duplicate-attribute-in-runtime-and-mxbean",
-                "port");
+        testedYangModulesToExpectedConflictingName.put("config-test-duplicate-attribute-in-runtime-and-mxbean", "port");
     }
 
-    private String getYangModuleName(String name) {
-        int startIndex = 0;
-        int endIndex = name.indexOf(".yang");
-        return name.substring(startIndex, endIndex);
+    private Module loadYangs(final String testedModule, final String moduleName) {
+        final List<String> yangs = new ArrayList<>();
+        yangs.add("/ietf-inet-types.yang");
+        yangs.add("/duplicates/" + testedModule + YangConstants.RFC6020_YANG_FILE_EXTENSION);
+        yangs.addAll(getConfigApiYangs());
+
+        this.context =  YangParserTestUtils.parseYangResources(ModuleMXBeanEntryNameConflictTest.class, yangs);
+        this.namesToModules = YangModelSearchUtils.mapModulesByNames(this.context.getModules());
+        this.configModule = this.namesToModules.get(ConfigConstants.CONFIG_MODULE);
+        final Module module = this.namesToModules.get(moduleName);
+        Preconditions.checkNotNull(module, "Cannot get module %s from %s", moduleName, this.namesToModules.keySet());
+        return module;
     }
 
-    private Module loadYangs(File testedModule, String moduleName)
-            throws Exception {
-        List<InputStream> yangISs = new ArrayList<>();
-        yangISs.addAll(getStreams("/ietf-inet-types.yang"));
-
-        yangISs.add(new FileInputStream(testedModule));
-
-        yangISs.addAll(getConfigApiYangInputStreams());
+    @Ignore
+    @Test
+    public void testNameConflicts() {
+        for (final String moduleName : testedModules) {
+            final Module testedModule = loadYangs(moduleName, moduleName);
 
-        YangParserImpl parser = new YangParserImpl();
-        Set<Module> modulesToBuild = parser.parseYangModelsFromStreams(yangISs);
-        // close ISs
-        for (InputStream is : yangISs) {
-            is.close();
+            try {
+                LOG.debug("Testing {}", moduleName);
+                ModuleMXBeanEntry.create(testedModule, new HashMap<>(), this.context,
+                        new TypeProviderWrapper(new TypeProviderImpl(this.context)), PACKAGE_NAME);
+                fail(moduleName + " did not cause a name conflict and should");
+            } catch (final NameConflictException e) {
+                assertEquals(this.testedYangModulesToExpectedConflictingName.get(moduleName), e.getConflictingName());
+            }
         }
-        context = parser.resolveSchemaContext(modulesToBuild);
-        namesToModules = YangModelSearchUtils.mapModulesByNames(context
-                .getModules());
-        configModule = namesToModules.get(ConfigConstants.CONFIG_MODULE);
-        final Module module = namesToModules.get(moduleName);
-        Preconditions.checkNotNull(module, "Cannot get module %s from %s",
-                moduleName, namesToModules.keySet());
-        return module;
     }
-
 }