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
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\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
7  */\r
8 package org.opendaylight.controller.sal.java.api.generator.test;\r
9 \r
10 import static org.junit.Assert.*;\r
11 \r
12 import java.io.File;\r
13 import java.util.Arrays;\r
14 import java.util.HashSet;\r
15 import java.util.List;\r
16 import java.util.Set;\r
17 \r
18 import org.junit.After;\r
19 import org.junit.Before;\r
20 import org.junit.Test;\r
21 import org.opendaylight.controller.sal.binding.generator.impl.GeneratedTypeBuilderImpl;\r
22 import org.opendaylight.controller.sal.binding.model.api.GeneratedType;\r
23 import org.opendaylight.controller.sal.binding.model.api.type.builder.GeneratedTypeBuilder;\r
24 import org.opendaylight.controller.sal.java.api.generator.GeneratorJavaFile;\r
25 import org.opendaylight.controller.sal.java.api.generator.InterfaceGenerator;\r
26 \r
27 public class GeneratorJavaFileTest {\r
28 \r
29     private static final String FS = File.separator;\r
30     private static final String PATH = "test-dir";\r
31     private final File testDir = new File(PATH);\r
32 \r
33     @Before\r
34     public void init() {\r
35         assertTrue(testDir.mkdir());\r
36     }\r
37 \r
38     @After\r
39     public void cleanUp() {\r
40         deleteTestDir(testDir);\r
41     }\r
42 \r
43     @Test\r
44     public void test() {\r
45         final Set<GeneratedType> types = new HashSet<GeneratedType>();\r
46         GeneratedType t1 = createGeneratedType(\r
47                 "org.opendaylight.controller.gen", "Type1");\r
48         GeneratedType t2 = createGeneratedType(\r
49                 "org.opendaylight.controller.gen", "Type2");\r
50         GeneratedType t3 = createGeneratedType(\r
51                 "org.opendaylight.controller.gen", "Type3");\r
52         types.add(t1);\r
53         types.add(t2);\r
54         types.add(t3);\r
55         GeneratorJavaFile generator = new GeneratorJavaFile(\r
56                 new InterfaceGenerator(), types);\r
57         generator.generateToFile(PATH);\r
58 \r
59         // path: test-dir/com/cisco/yang\r
60         String[] files = new File(PATH + FS + "com" + FS + "cisco" + FS\r
61                 + "yang").list();\r
62         List<String> filesList = Arrays.asList(files);\r
63 \r
64         assertEquals(3, files.length);\r
65         assertTrue(filesList.contains("Type1.java"));\r
66         assertTrue(filesList.contains("Type2.java"));\r
67         assertTrue(filesList.contains("Type3.java"));\r
68     }\r
69 \r
70     private GeneratedType createGeneratedType(String pkgName, String name) {\r
71         GeneratedTypeBuilder builder = new GeneratedTypeBuilderImpl(pkgName,\r
72                 name);\r
73         return builder.toInstance();\r
74     }\r
75 \r
76     private void deleteTestDir(File file) {\r
77         if (file.isDirectory()) {\r
78             for (File f : file.listFiles()) {\r
79                 deleteTestDir(f);\r
80             }\r
81         }\r
82         if (!file.delete()) {\r
83             throw new RuntimeException("Failed to clean up after test");\r
84         }\r
85     }\r
86 \r
87 }\r