X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-java-api-generator%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fjava%2Fapi%2Fgenerator%2Ftest%2FBaseCompilationTest.java;h=294ff8ff5f186fd87c997f8989031555da76b9f3;hb=12c957d9a7de8e6da49a652f08587714f6ca4f14;hp=4f9704f689fbf451ed10dbeaa60325ea05228eb7;hpb=ad4b0d54923516fb479d7f45ff490b5c98611530;p=mdsal.git diff --git a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java index 4f9704f689..294ff8ff5f 100644 --- a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java +++ b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java @@ -10,14 +10,16 @@ package org.opendaylight.mdsal.binding.java.api.generator.test; import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Table; +import com.google.common.collect.Table.Cell; import com.google.common.io.Files; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; -import java.util.Collections; import java.util.List; import java.util.Optional; +import java.util.function.Supplier; import org.junit.Before; import org.junit.BeforeClass; import org.opendaylight.mdsal.binding.generator.api.BindingGenerator; @@ -25,7 +27,7 @@ import org.opendaylight.mdsal.binding.generator.impl.BindingGeneratorImpl; import org.opendaylight.mdsal.binding.java.api.generator.GeneratorJavaFile; import org.opendaylight.mdsal.binding.java.api.generator.YangModuleInfoTemplate; import org.opendaylight.mdsal.binding.model.api.Type; -import org.opendaylight.yangtools.yang.binding.BindingMapping; +import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; @@ -48,14 +50,25 @@ public abstract class BaseCompilationTest { bindingGenerator = new BindingGeneratorImpl(); } - protected final void generateTestSources(final String resourceDirPath, final File sourcesOutputDir) + protected static final void generateTestSources(final List types, final File sourcesOutputDir) + throws IOException { + types.sort((o1, o2) -> o2.getName().compareTo(o1.getName())); + + final GeneratorJavaFile generator = new GeneratorJavaFile(ImmutableSet.copyOf(types)); + final Table> generatedFiles = generator.generateFileContent(true); + for (Cell> cell : generatedFiles.cellSet()) { + final File target = new File(sourcesOutputDir, cell.getColumnKey()); + Files.createParentDirs(target); + Files.asCharSink(target, StandardCharsets.UTF_8).write(cell.getValue().get()); + } + } + + protected final List generateTestSources(final String resourceDirPath, final File sourcesOutputDir) throws IOException, URISyntaxException { final List sourceFiles = CompilationTestUtils.getSourceFiles(resourceDirPath); final SchemaContext context = YangParserTestUtils.parseYangFiles(sourceFiles); final List types = bindingGenerator.generateTypes(context); - Collections.sort(types, (o1, o2) -> o2.getName().compareTo(o1.getName())); - final GeneratorJavaFile generator = new GeneratorJavaFile(ImmutableSet.copyOf(types)); - generator.generateToFile(sourcesOutputDir); + generateTestSources(types, sourcesOutputDir); // Also generate YangModuleInfo for (Module module : context.getModules()) { @@ -65,7 +78,10 @@ public abstract class BaseCompilationTest { final File file = new File(GeneratorJavaFile.packageToDirectory(sourcesOutputDir, BindingMapping.getRootPackageName(module.getQNameModule())), BindingMapping.MODULE_INFO_CLASS_NAME + ".java"); + Files.createParentDirs(file); Files.asCharSink(file, StandardCharsets.UTF_8).write(template.generate()); } + + return types; } }