8105ea110fe3c71f34e3ed633e9ca41b94345cca
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / test / java / org / opendaylight / yangtools / sal / java / api / generator / test / GeneratorJavaFileTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.sal.java.api.generator.test;
9
10 import static org.junit.Assert.assertTrue;
11 import java.io.File;
12 import java.io.IOException;
13 import java.util.Arrays;
14 import java.util.HashSet;
15 import java.util.List;
16 import java.util.Set;
17 import org.junit.Test;
18 import org.opendaylight.yangtools.binding.generator.util.BindingTypes;
19 import org.opendaylight.yangtools.binding.generator.util.Types;
20 import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTypeBuilderImpl;
21 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
22 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTypeBuilder;
23 import org.opendaylight.yangtools.sal.java.api.generator.GeneratorJavaFile;
24
25 public class GeneratorJavaFileTest {
26     private static final String FS = File.separator;
27     private static final String PATH = "target/test/test-dir";
28
29     @Test
30     public void test() throws IOException {
31         final Set<GeneratedType> types = new HashSet<GeneratedType>();
32         GeneratedType t1 = createGeneratedType("org.opendaylight.controller.gen", "Type1");
33         GeneratedType t2 = createGeneratedType("org.opendaylight.controller.gen", "Type2");
34         GeneratedType t3 = createGeneratedType("org.opendaylight.controller.gen", "Type3");
35         types.add(t1);
36         types.add(t2);
37         types.add(t3);
38         GeneratedTypeBuilder gtb = new GeneratedTypeBuilderImpl("org.opendaylight.controller.gen", "Type4");
39         gtb.addImplementsType(Types.augmentableTypeFor(gtb));
40         types.add(gtb.toInstance());
41         GeneratorJavaFile generator = new GeneratorJavaFile(types);
42         generator.generateToFile(new File(PATH));
43
44         String[] files = new File(PATH + FS + "org" + FS + "opendaylight" + FS + "controller" + FS + "gen").list();
45         List<String> filesList = Arrays.asList(files);
46
47         // assertEquals(5, files.length);
48         assertTrue(filesList.contains("Type1.java"));
49         assertTrue(filesList.contains("Type2.java"));
50         assertTrue(filesList.contains("Type3.java"));
51         assertTrue(filesList.contains("Type4.java"));
52         assertTrue(filesList.contains("Type4Builder.java"));
53     }
54
55     private static GeneratedType createGeneratedType(final String pkgName, final String name) {
56         GeneratedTypeBuilder builder = new GeneratedTypeBuilderImpl(pkgName, name);
57         builder.addImplementsType(BindingTypes.DATA_OBJECT);
58         return builder.toInstance();
59     }
60
61 }