--- /dev/null
+/*\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