X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?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=6a38050a4e5f7db6f037ef6b3cef5736e1010d2f;hb=2f14a41bbd09010114116aef1499641f7251bf83;hp=511445740d1288174ea85fccb4b20dd4095296cc;hpb=1956ffcf4e2a98930223c6c47ab7df12a77a256c;p=controller.git 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 511445740d..6a38050a4e 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 @@ -10,6 +10,7 @@ package org.opendaylight.controller.sal.java.api.generator.test; import static org.junit.Assert.*; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -23,10 +24,12 @@ 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; @@ -35,34 +38,40 @@ 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.YangModelParserImpl; +import org.opendaylight.controller.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 - public void test() { + public void test() throws IOException { final Set types = new HashSet(); GeneratedType t1 = createGeneratedType( "org.opendaylight.controller.gen", "Type1"); @@ -75,61 +84,76 @@ public class GeneratorJavaFileTest { types.add(t3); GeneratorJavaFile generator = new GeneratorJavaFile( new InterfaceGenerator(), types); - generator.generateToFile(PATH); + generator.generateToFile(new File(PATH)); - // path: test-dir/com/cisco/yang - String[] files = new File(PATH + FS + "org" + FS + "opendaylight" + FS + "controller" + FS + "gen").list(); + 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 YangModelParserImpl parser = new YangModelParserImpl(); + final YangParserImpl parser = new YangParserImpl(); final BindingGenerator bindingGenerator = new BindingGeneratorImpl(); - File sourcesDir = new File("src/test/resources/yang"); - File[] sourceFiles = sourcesDir.listFiles(); - String[] sourcesDirPaths = new String[sourceFiles.length]; - for (int i = 0; i < sourceFiles.length; i++) { - sourcesDirPaths[i] = sourceFiles[i].getAbsolutePath(); + final String resPath = getClass().getResource("/yang").getPath(); + final File sourcesDir = new File(resPath); + final List sourceFiles = new ArrayList(); + final File[] fileArray = sourcesDir.listFiles(); + + for (int i = 0; i < fileArray.length; ++i) { + sourceFiles.add(fileArray[i]); } - final Set modulesToBuild = parser - .parseYangModels(sourcesDirPaths); + + final Set modulesToBuild = parser.parseYangModels(sourceFiles); final SchemaContext context = parser .resolveSchemaContext(modulesToBuild); 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) { + if (type instanceof GeneratedType + && !(type instanceof GeneratedTransferObject)) { typesToGenerate.add((GeneratedType) type); } 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); @@ -155,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) { @@ -173,5 +196,4 @@ public class GeneratorJavaFileTest { } return result; } - }