summaryrefslogtreecommitdiffstats
path: root/configgen/src/test/java/com/yahoo/config/codegen/MakeConfigTest.java
diff options
context:
space:
mode:
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.java80
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[]{});
+ }
+
+}