diff options
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.java | 69 |
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; + } +} |