Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / yang-prototype / code-generator / binding-java-api-generator / src / test / java / org / opendaylight / controller / sal / java / api / generator / test / GeneratorJavaFileTest.java
diff --git a/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/controller/sal/java/api/generator/test/GeneratorJavaFileTest.java b/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/controller/sal/java/api/generator/test/GeneratorJavaFileTest.java
new file mode 100644 (file)
index 0000000..36d0fbc
--- /dev/null
@@ -0,0 +1,87 @@
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.sal.java.api.generator.test;\r
+\r
+import static org.junit.Assert.*;\r
+\r
+import java.io.File;\r
+import java.util.Arrays;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import org.junit.After;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.opendaylight.controller.sal.binding.generator.impl.GeneratedTypeBuilderImpl;\r
+import org.opendaylight.controller.sal.binding.model.api.GeneratedType;\r
+import org.opendaylight.controller.sal.binding.model.api.type.builder.GeneratedTypeBuilder;\r
+import org.opendaylight.controller.sal.java.api.generator.GeneratorJavaFile;\r
+import org.opendaylight.controller.sal.java.api.generator.InterfaceGenerator;\r
+\r
+public class GeneratorJavaFileTest {\r
+\r
+    private static final String FS = File.separator;\r
+    private static final String PATH = "test-dir";\r
+    private final File testDir = new File(PATH);\r
+\r
+    @Before\r
+    public void init() {\r
+        assertTrue(testDir.mkdir());\r
+    }\r
+\r
+    @After\r
+    public void cleanUp() {\r
+        deleteTestDir(testDir);\r
+    }\r
+\r
+    @Test\r
+    public void test() {\r
+        final Set<GeneratedType> types = new HashSet<GeneratedType>();\r
+        GeneratedType t1 = createGeneratedType(\r
+                "org.opendaylight.controller.gen", "Type1");\r
+        GeneratedType t2 = createGeneratedType(\r
+                "org.opendaylight.controller.gen", "Type2");\r
+        GeneratedType t3 = createGeneratedType(\r
+                "org.opendaylight.controller.gen", "Type3");\r
+        types.add(t1);\r
+        types.add(t2);\r
+        types.add(t3);\r
+        GeneratorJavaFile generator = new GeneratorJavaFile(\r
+                new InterfaceGenerator(), types);\r
+        generator.generateToFile(PATH);\r
+\r
+        // path: test-dir/com/cisco/yang\r
+        String[] files = new File(PATH + FS + "com" + FS + "cisco" + FS\r
+                + "yang").list();\r
+        List<String> filesList = Arrays.asList(files);\r
+\r
+        assertEquals(3, files.length);\r
+        assertTrue(filesList.contains("Type1.java"));\r
+        assertTrue(filesList.contains("Type2.java"));\r
+        assertTrue(filesList.contains("Type3.java"));\r
+    }\r
+\r
+    private GeneratedType createGeneratedType(String pkgName, String name) {\r
+        GeneratedTypeBuilder builder = new GeneratedTypeBuilderImpl(pkgName,\r
+                name);\r
+        return builder.toInstance();\r
+    }\r
+\r
+    private void deleteTestDir(File file) {\r
+        if (file.isDirectory()) {\r
+            for (File f : file.listFiles()) {\r
+                deleteTestDir(f);\r
+            }\r
+        }\r
+        if (!file.delete()) {\r
+            throw new RuntimeException("Failed to clean up after test");\r
+        }\r
+    }\r
+\r
+}\r