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=db42d32fe6e7415f0ee90084c869fb06db9856c1;hb=ff1b4a79cca00743a00c3b0b1100bd0ab2b2fb31;hp=5b5d50319222951e14688b65248e6c149b267345;hpb=071db48e47fa3dd83da3933f1b35c3ca0d42f550;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 5b5d503192..db42d32fe6 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 @@ -7,13 +7,12 @@ */ package org.opendaylight.controller.sal.java.api.generator.test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -25,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; @@ -37,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"); @@ -77,10 +84,10 @@ 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); @@ -88,56 +95,62 @@ public class GeneratorJavaFileTest { assertTrue(filesList.contains("Type2.java")); assertTrue(filesList.contains("Type3.java")); } - + + @Ignore @Test public void compilationTest() throws Exception { - final YangModelParserImpl parser = new YangModelParserImpl(); + 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(); - + for (int i = 0; i < fileArray.length; ++i) { sourceFiles.add(fileArray[i]); } - -// String[] sourcesDirPaths = new String[sourceFiles.length]; -// for (int i = 0; i < sourceFiles.length; i++) { -// sourcesDirPaths[i] = sourceFiles[i].getAbsolutePath(); -// } - final Set modulesToBuild = parser - .parseYangModels(sourceFiles); + + 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 && !(type instanceof GeneratedTransferObject)) { + 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); @@ -163,8 +176,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) { @@ -181,5 +193,4 @@ public class GeneratorJavaFileTest { } return result; } - }