This is an automated email from the ASF dual-hosted git repository. davidb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-modelconverter.git
commit af9e4a0f9972db9adbca3cf03dde46bc35d012a4 Author: David Bosschaert <[email protected]> AuthorDate: Mon May 28 15:11:18 2018 +0100 Test to ensures that two different Feature Models produce the same provisioning model --- .../feature/modelconverter/ModelConverterTest.java | 57 +++++++++++++++++++--- 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java b/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java index 0e9fd87..8526fa8 100644 --- a/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java +++ b/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java @@ -123,6 +123,31 @@ public class ModelConverterTest { } @Test + public void testDifferentSourceIdenticalProvModel() throws Exception { + String dir1 = System.getProperty("test.json.dir1"); + String dir2 = System.getProperty("test.json.dir2"); + + File[] files1, files2; + if (dir1 != null && dir2 != null) { + files1 = new File(dir1).listFiles((d, n) -> n.endsWith(".json")); + files2 = new File(dir2).listFiles((d, n) -> n.endsWith(".json")); + } else { + files1 = new File[] { + getFile("/runmodeseparation/oak_no_runmode.json"), + getFile("/runmodeseparation/oak_mongo.json"), + getFile("/runmodeseparation/oak_tar.json") + }; + files2 = new File[] {getFile("/oak.json")}; + } + + testConvertToProvisioningModel(files1, files2); + } + + private File getFile(String f) throws URISyntaxException { + return new File(getClass().getResource(f).toURI()); + } + + @Test public void testOakToFeature() throws Exception { testConvertToFeature("/oak.txt", "/oak.json"); } @@ -309,21 +334,39 @@ public class ModelConverterTest { } public void testConvertToProvisioningModel(String [] jsonFiles, String expectedProvModel) throws URISyntaxException, IOException { - List<File> generatedFiles = new ArrayList<>(); - for (String jsonFile : jsonFiles) { - File inFile = new File(getClass().getResource(jsonFile).toURI()); - File outFile = new File(tempDir.toFile(), inFile.getName() + ".txt.generated"); - - FeatureToProvisioning.convert(inFile, outFile, artifactManager); - generatedFiles.add(outFile); + List<File> inFiles = new ArrayList<>(); + for (String jf : jsonFiles) { + inFiles.add(new File(getClass().getResource(jf).toURI())); } + List<File> generatedFiles = convertFeatureFilesToProvisioningModel(inFiles.toArray(new File[] {})); + File expectedFile = new File(getClass().getResource(expectedProvModel).toURI()); Model expected = readProvisioningModel(expectedFile); Model actual = readProvisioningModel(generatedFiles); assertModelsEqual(expected, actual); } + public void testConvertToProvisioningModel(File[] jsonFiles1, File[] jsonFiles2) throws URISyntaxException, IOException { + List<File> generatedFiles1 = convertFeatureFilesToProvisioningModel(jsonFiles1); + List<File> generatedFiles2 = convertFeatureFilesToProvisioningModel(jsonFiles2); + + Model actual1 = readProvisioningModel(generatedFiles1); + Model actual2 = readProvisioningModel(generatedFiles2); + assertModelsEqual(actual1, actual2); + } + + private List<File> convertFeatureFilesToProvisioningModel(File[] jsonFiles) throws URISyntaxException, IOException { + List<File> generatedFiles = new ArrayList<>(); + for (File inFile : jsonFiles) { + File outFile = new File(tempDir.toFile(), inFile.getName() + ".txt.generated"); + + FeatureToProvisioning.convert(inFile, outFile, artifactManager); + generatedFiles.add(outFile); + } + return generatedFiles; + } + private static Model readProvisioningModel(File modelFile) throws IOException { return readProvisioningModel(Collections.singletonList(modelFile)); } -- To stop receiving notification emails like this one, please contact [email protected].
