summaryrefslogtreecommitdiffstats
path: root/flags/src/test
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2019-01-09 17:31:34 +0100
committerHåkon Hallingstad <hakon@oath.com>2019-01-09 17:31:34 +0100
commit27ad82c5122b28e886d04904a73cd17e9bbcd105 (patch)
tree94e577720b0ac5ce7546d1667a571e2f0b036734 /flags/src/test
parent68cbb82330cb610ff3e3462a7ec704f78e49a31c (diff)
Store flags locally in one file
Diffstat (limited to 'flags/src/test')
-rw-r--r--flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java (renamed from flags/src/test/java/com/yahoo/vespa/flags/file/FlagDirectoryTest.java)44
1 files changed, 17 insertions, 27 deletions
diff --git a/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDirectoryTest.java b/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java
index fec98fab164..fd1a71e4b4a 100644
--- a/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDirectoryTest.java
+++ b/flags/src/test/java/com/yahoo/vespa/flags/file/FlagDbFileTest.java
@@ -12,6 +12,7 @@ import org.junit.Test;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystem;
import java.nio.file.Files;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -22,27 +23,12 @@ import static org.hamcrest.Matchers.equalTo;
/**
* @author hakonhall
*/
-public class FlagDirectoryTest {
+public class FlagDbFileTest {
private final FileSystem fileSystem = TestFileSystem.create();
- private final FlagDirectory flagDirectory = new FlagDirectory(fileSystem);
+ private final FlagDbFile flagDb = new FlagDbFile(fileSystem);
@Test
- public void testReadingOnly() {
- Map<FlagId, FlagData> data = flagDirectory.read();
- assertThat(data, IsMapWithSize.anEmptyMap());
-
- FlagId id1 = new FlagId("id1");
- String json1 = "{\"id\":\"id1\"}";
- writeUtf8FlagFile(id1.toString(), json1);
- data = flagDirectory.read();
- assertThat(data, IsMapWithSize.aMapWithSize(1));
- assertThat(data, IsMapContaining.hasKey(id1));
- assertThat(data.get(id1).id(), equalTo(id1));
- assertThat(data.get(id1).serializeToJson(), equalTo(json1));
- }
-
- @Test
- public void testSync() {
+ public void test() {
Map<FlagId, FlagData> dataMap = new HashMap<>();
FlagId id1 = new FlagId("id1");
FlagData data1 = new FlagData(id1, new FetchVector());
@@ -52,17 +38,19 @@ public class FlagDirectoryTest {
dataMap.put(id2, data2);
// Non-existing directory => empty map
- assertThat(flagDirectory.read(), IsMapWithSize.anEmptyMap());
+ assertThat(flagDb.read(), IsMapWithSize.anEmptyMap());
// sync() will create directory with map content
- assertThat(flagDirectory.sync(dataMap), equalTo(true));
- Map<FlagId, FlagData> readDataMap = flagDirectory.read();
+ assertThat(flagDb.sync(dataMap), equalTo(true));
+ Map<FlagId, FlagData> readDataMap = flagDb.read();
assertThat(readDataMap, IsMapWithSize.aMapWithSize(2));
assertThat(readDataMap, IsMapContaining.hasKey(id1));
assertThat(readDataMap, IsMapContaining.hasKey(id2));
+ assertThat(getDbContent(), equalTo("{\"flags\":[{\"id\":\"id1\"},{\"id\":\"id2\"}]}"));
+
// another sync with the same data is a no-op
- assertThat(flagDirectory.sync(dataMap), equalTo(false));
+ assertThat(flagDb.sync(dataMap), equalTo(false));
// Changing value of id1, removing id2, adding id3
dataMap.remove(id2);
@@ -71,16 +59,18 @@ public class FlagDirectoryTest {
FlagId id3 = new FlagId("id3");
FlagData data3 = new FlagData(id3, new FetchVector());
dataMap.put(id3, data3);
- assertThat(flagDirectory.sync(dataMap), equalTo(true));
- Map<FlagId, FlagData> anotherReadDataMap = flagDirectory.read();
+ assertThat(flagDb.sync(dataMap), equalTo(true));
+ Map<FlagId, FlagData> anotherReadDataMap = flagDb.read();
assertThat(anotherReadDataMap, IsMapWithSize.aMapWithSize(2));
assertThat(anotherReadDataMap, IsMapContaining.hasKey(id1));
assertThat(anotherReadDataMap, IsMapContaining.hasKey(id3));
assertThat(anotherReadDataMap.get(id1).serializeToJson(), equalTo("{\"id\":\"id1\",\"attributes\":{\"hostname\":\"h1\"}}"));
+
+ assertThat(flagDb.sync(Collections.emptyMap()), equalTo(true));
+ assertThat(getDbContent(), equalTo("{\"flags\":[]}"));
}
- private void writeUtf8FlagFile(String flagIdAkaFilename, String content) {
- uncheck(() -> Files.createDirectories(flagDirectory.getPath()));
- uncheck(() -> Files.write(flagDirectory.getPath().resolve(flagIdAkaFilename), content.getBytes(StandardCharsets.UTF_8)));
+ public String getDbContent() {
+ return uncheck(() -> new String(Files.readAllBytes(flagDb.getPath()), StandardCharsets.UTF_8));
}
} \ No newline at end of file