summaryrefslogtreecommitdiffstats
path: root/container-di/src/test/java/com/yahoo/container/di/DirConfigSource.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-di/src/test/java/com/yahoo/container/di/DirConfigSource.java')
-rw-r--r--container-di/src/test/java/com/yahoo/container/di/DirConfigSource.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/container-di/src/test/java/com/yahoo/container/di/DirConfigSource.java b/container-di/src/test/java/com/yahoo/container/di/DirConfigSource.java
new file mode 100644
index 00000000000..ec937a1a4ef
--- /dev/null
+++ b/container-di/src/test/java/com/yahoo/container/di/DirConfigSource.java
@@ -0,0 +1,69 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.di;
+
+import com.yahoo.config.subscription.ConfigSource;
+import com.yahoo.config.subscription.ConfigSourceSet;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Random;
+
+/**
+ * @author Tony Vaagenes
+ * @author gjoranv
+ * @author ollivir
+ */
+public class DirConfigSource {
+ private final TemporaryFolder tempFolder = createTemporaryFolder();
+ public final ConfigSource configSource;
+
+ public DirConfigSource(String testSourcePrefix) {
+ this.configSource = new ConfigSourceSet(testSourcePrefix + new Random().nextLong());
+ }
+
+ public void writeConfig(String name, String contents) {
+ File file = new File(tempFolder.getRoot(), name + ".cfg");
+ if (!file.exists()) {
+ try {
+ file.createNewFile();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ printFile(file, contents + "\n");
+ }
+
+ public String configId() {
+ return "dir:" + tempFolder.getRoot().getPath();
+ }
+
+ public ConfigSource configSource() {
+ return configSource;
+ }
+
+ public void cleanup() {
+ tempFolder.delete();
+ }
+
+ private static void printFile(File f, String content) {
+ try (OutputStream out = new FileOutputStream(f)) {
+ out.write(content.getBytes("UTF-8"));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static TemporaryFolder createTemporaryFolder() {
+ TemporaryFolder folder = new TemporaryFolder();
+ try {
+ folder.create();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return folder;
+ }
+}