X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fbinding-java-api-generator%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fjava%2Fapi%2Fgenerator%2Ftest%2FGeneratorJavaFileTest.java;h=3b03a0633b4a53834cf1ded8fcac387c1fec2cf1;hp=0e2d9e4c40b901eb30bde73b454d3514bebe9492;hb=0b203f52cbe128efa17a6c400b6653c8e6a84ba8;hpb=3de02c0d3a9fad575f326f022a562042e3034fbe 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 index 0e2d9e4c40..3b03a0633b 100644 --- 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 @@ -24,42 +24,50 @@ import javax.tools.ToolProvider; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.opendaylight.controller.binding.generator.util.generated.type.builder.GeneratedTypeBuilderImpl; import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator; import org.opendaylight.controller.sal.binding.generator.impl.BindingGeneratorImpl; +import org.opendaylight.controller.sal.binding.model.api.Enumeration; import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject; import org.opendaylight.controller.sal.binding.model.api.GeneratedType; import org.opendaylight.controller.sal.binding.model.api.Type; import org.opendaylight.controller.sal.binding.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.controller.sal.java.api.generator.GeneratorJavaFile; import org.opendaylight.controller.sal.java.api.generator.InterfaceGenerator; -import org.opendaylight.controller.yang.model.api.Module; -import org.opendaylight.controller.yang.model.api.SchemaContext; -import org.opendaylight.controller.yang.model.parser.impl.YangParserImpl; +import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; public class GeneratorJavaFileTest { private static final String FS = File.separator; - private static final String PATH = "test-dir"; + private static final String PATH = "target/test/test-dir"; private final File testDir = new File(PATH); - private static final String GENERATOR_OUTPUT_PATH = "src/test/resources/src"; + private static final String GENERATOR_OUTPUT_PATH = "target/test/src"; private static final File GENERATOR_OUTPUT = new File(GENERATOR_OUTPUT_PATH); - private static final String COMPILER_OUTPUT_PATH = "src/test/resources/bin"; + private static final String COMPILER_OUTPUT_PATH = "target/test/bin"; private static final File COMPILER_OUTPUT = new File(COMPILER_OUTPUT_PATH); @Before public void init() { - assertTrue(testDir.mkdir()); + assertTrue(testDir.mkdirs()); assertTrue(COMPILER_OUTPUT.mkdirs()); assertTrue(GENERATOR_OUTPUT.mkdirs()); } @After public void cleanUp() { - deleteTestDir(testDir); - deleteTestDir(COMPILER_OUTPUT); - deleteTestDir(GENERATOR_OUTPUT); + if(testDir.exists()) { + deleteTestDir(testDir); + } + if(COMPILER_OUTPUT.exists()) { + deleteTestDir(COMPILER_OUTPUT); + } + if(GENERATOR_OUTPUT.exists()) { + deleteTestDir(GENERATOR_OUTPUT); + } } @Test @@ -76,24 +84,29 @@ public class GeneratorJavaFileTest { types.add(t3); GeneratorJavaFile generator = new GeneratorJavaFile( new InterfaceGenerator(), types); - generator.generateToFile(PATH); + generator.generateToFile(new File(PATH)); String[] files = new File(PATH + FS + "org" + FS + "opendaylight" + FS + "controller" + FS + "gen").list(); List filesList = Arrays.asList(files); - assertEquals(3, files.length); + assertEquals(6, files.length); assertTrue(filesList.contains("Type1.java")); assertTrue(filesList.contains("Type2.java")); assertTrue(filesList.contains("Type3.java")); + assertTrue(filesList.contains("Type1Builder.java")); + assertTrue(filesList.contains("Type2Builder.java")); + assertTrue(filesList.contains("Type3Builder.java")); } + @Ignore @Test public void compilationTest() throws Exception { final YangParserImpl parser = new YangParserImpl(); final BindingGenerator bindingGenerator = new BindingGeneratorImpl(); - final File sourcesDir = new File("src/test/resources/yang"); + final String resPath = getClass().getResource("/yang").getPath(); + final File sourcesDir = new File(resPath); final List sourceFiles = new ArrayList(); final File[] fileArray = sourcesDir.listFiles(); @@ -108,6 +121,7 @@ public class GeneratorJavaFileTest { final List types = bindingGenerator.generateTypes(context); final Set typesToGenerate = new HashSet(); final Set tosToGenerate = new HashSet(); + final Set enumerationToGenerate = new HashSet(); for (Type type : types) { if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) { @@ -117,22 +131,29 @@ public class GeneratorJavaFileTest { if (type instanceof GeneratedTransferObject) { tosToGenerate.add((GeneratedTransferObject) type); } + if (type instanceof Enumeration) { + enumerationToGenerate.add((Enumeration) type); + } } final GeneratorJavaFile generator = new GeneratorJavaFile( - typesToGenerate, tosToGenerate); - generator.generateToFile(GENERATOR_OUTPUT_PATH); + typesToGenerate, tosToGenerate, enumerationToGenerate); + generator.generateToFile(new File(GENERATOR_OUTPUT_PATH)); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileManager = compiler.getStandardFileManager( null, null, null); List filesList = getJavaFiles(new File(GENERATOR_OUTPUT_PATH)); + File current = new File(System.getProperty("user.dir")); + File parentPath = current.getParentFile().getParentFile(); + File f = new File(parentPath,"yang/yang-binding/src/main/java/org/opendaylight/controller/yang/binding/DataObject.java" + ); + filesList.add(f); Iterable compilationUnits = fileManager .getJavaFileObjectsFromFiles(filesList); - Iterable options = Arrays.asList(new String[] { "-d", - COMPILER_OUTPUT_PATH }); + Iterable options = Arrays.asList(new String[]{"-d", COMPILER_OUTPUT_PATH}); boolean compiled = compiler.getTask(null, null, null, options, null, compilationUnits).call(); assertTrue(compiled); @@ -158,8 +179,7 @@ public class GeneratorJavaFileTest { /** * Search recursively given directory for *.java files. * - * @param directory - * directory to search + * @param directory directory to search * @return List of java files found */ private List getJavaFiles(File directory) { @@ -176,5 +196,4 @@ public class GeneratorJavaFileTest { } return result; } - }