diff options
Diffstat (limited to 'configgen/src/test/java/com/yahoo/config/codegen/MakeConfigTest.java')
-rw-r--r-- | configgen/src/test/java/com/yahoo/config/codegen/MakeConfigTest.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/MakeConfigTest.java b/configgen/src/test/java/com/yahoo/config/codegen/MakeConfigTest.java new file mode 100644 index 00000000000..a9f29fd23dd --- /dev/null +++ b/configgen/src/test/java/com/yahoo/config/codegen/MakeConfigTest.java @@ -0,0 +1,80 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.codegen; + +import static org.junit.Assert.*; + +import java.io.File; +import java.io.IOException; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class MakeConfigTest { + + File dest; + + @Before + public void setUp() { + dest = new File("/tmp/"+System.currentTimeMillis()+File.separator); + dest.mkdir(); + } + + @After + public void tearDown() { + recursiveDeleteDir(dest); + } + + private boolean recursiveDeleteDir(File dir) { + if (dir.isDirectory()) { + String[] children = dir.list(); + + for (int i = 0; i < children.length; i++) { + boolean success = recursiveDeleteDir(new File(dir, children[i])); + + if (!success) return false; + } + } + + // The directory is now empty so delete it + return dir.delete(); + } + + @Test + public void testProps() throws PropertyException { + long ts = System.currentTimeMillis(); + System.setProperty("config.dumpTree", "true"); + System.setProperty("config.useFramework", "true"); + System.setProperty("config.requireNamespace", "true"); + System.setProperty("config.dest", dest.getAbsolutePath()); + System.setProperty("config.spec", "src/test/resources/allfeatures.def"); + MakeConfigProperties p = new MakeConfigProperties(); + assertEquals(p.destDir.getAbsolutePath(), dest.getAbsolutePath()); + assertTrue(p.dumpTree); + assertTrue(p.generateFrameworkCode); + assertEquals(p.specFiles.length, 1); + assertEquals(p.specFiles[0].getAbsolutePath(), new File("src/test/resources/allfeatures.def").getAbsolutePath()); + + System.setProperty("config.dumpTree", "false"); + System.setProperty("config.useFramework", "false"); + System.setProperty("config.requireNamespace", "false"); + System.setProperty("config.dest", dest.getAbsolutePath()); + System.setProperty("config.spec", "src/test/resources/allfeatures.def,src/test/resources/bar.foo.def"); + p = new MakeConfigProperties(); + assertEquals(p.destDir.getAbsolutePath(), dest.getAbsolutePath()); + assertFalse(p.dumpTree); + assertFalse(p.generateFrameworkCode); + assertEquals(p.specFiles.length, 2); + } + + @Test + public void testMake() throws IOException, InterruptedException { + System.setProperty("config.dumpTree", "true"); + System.setProperty("config.useFramework", "true"); + System.setProperty("config.requireNamespace", "true"); + System.setProperty("config.dest", dest.getAbsolutePath()); + System.setProperty("config.spec", "src/test/resources/allfeatures.def"); + MakeConfig.main(new String[]{}); + } + +} |