+ @Test\r
+ public void compilationTest() throws Exception {\r
+ final YangModelParserImpl parser = new YangModelParserImpl();\r
+ final BindingGenerator bindingGenerator = new BindingGeneratorImpl();\r
+\r
+ File sourcesDir = new File("src/test/resources/yang");\r
+ File[] sourceFiles = sourcesDir.listFiles();\r
+ String[] sourcesDirPaths = new String[sourceFiles.length];\r
+ for (int i = 0; i < sourceFiles.length; i++) {\r
+ sourcesDirPaths[i] = sourceFiles[i].getAbsolutePath();\r
+ }\r
+ final Set<Module> modulesToBuild = parser\r
+ .parseYangModels(sourcesDirPaths);\r
+\r
+ final SchemaContext context = parser\r
+ .resolveSchemaContext(modulesToBuild);\r
+ final List<Type> types = bindingGenerator.generateTypes(context);\r
+ final Set<GeneratedType> typesToGenerate = new HashSet<GeneratedType>();\r
+ final Set<GeneratedTransferObject> tosToGenerate = new HashSet<GeneratedTransferObject>();\r
+ for (Type type : types) {\r
+ if (type instanceof GeneratedType) {\r
+ typesToGenerate.add((GeneratedType) type);\r
+ }\r
+\r
+ if (type instanceof GeneratedTransferObject) {\r
+ tosToGenerate.add((GeneratedTransferObject) type);\r
+ }\r
+ }\r
+\r
+ final GeneratorJavaFile generator = new GeneratorJavaFile(\r
+ typesToGenerate, tosToGenerate);\r
+ generator.generateToFile(GENERATOR_OUTPUT_PATH);\r
+\r
+ JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();\r
+ StandardJavaFileManager fileManager = compiler.getStandardFileManager(\r
+ null, null, null);\r
+\r
+ List<File> filesList = getJavaFiles(new File(GENERATOR_OUTPUT_PATH));\r
+\r
+ Iterable<? extends JavaFileObject> compilationUnits = fileManager\r
+ .getJavaFileObjectsFromFiles(filesList);\r
+ Iterable<String> options = Arrays.asList(new String[] { "-d",\r
+ COMPILER_OUTPUT_PATH });\r
+ boolean compiled = compiler.getTask(null, null, null, options, null,\r
+ compilationUnits).call();\r
+ assertTrue(compiled);\r
+ }\r
+\r