@Override /* ConfigStore */ public synchronized String write(String name, String expectedContents, String newContents) { // This is a no-op. if (isEquals(expectedContents, newContents)) return null; String currentContents = read(name); if (expectedContents != null && ! isEquals(currentContents, expectedContents)) return currentContents; update(name, newContents); return null; }
@Override /* ConfigStore */ public synchronized String write(String name, String expectedContents, String newContents) { // This is a no-op. if (isEquals(expectedContents, newContents)) return null; String currentContents = read(name); if (expectedContents != null && ! isEquals(currentContents, expectedContents)) return currentContents; update(name, newContents); return null; }
@Override /* ConfigStore */ public synchronized String write(String name, String expectedContents, String newContents) { // This is a no-op. if (isEquals(expectedContents, newContents)) return null; String currentContents = read(name); if (expectedContents != null && ! isEquals(currentContents, expectedContents)) return currentContents; update(name, newContents); return null; }
@Test public void testFailOnMismatch() throws Exception { ConfigMemoryStore fs = ConfigMemoryStore.create().build(); assertNotNull(fs.write("X", "xxx", "foo")); assertEquals("", fs.read("X")); assertNull(fs.write("X", null, "foo")); assertEquals("foo", fs.read("X")); assertNotNull(fs.write("X", "xxx", "foo")); assertEquals("foo", fs.read("X")); assertNull(fs.write("X", "foo", "bar")); assertEquals("bar", fs.read("X")); }
@Test public void testNoFile() throws Exception { ConfigMemoryStore fs = ConfigMemoryStore.create().build(); assertEquals("", fs.read("X")); }
@Test public void testEncodeEntries() throws Exception { Config cf = init( "[s1]", "", "foo* = mypassword" ); cf.encodeEntries(); cf.commit(); String expected = "[s1]||foo* = {AwwJVhwUQFZEMg==}|"; assertTextEquals(expected, ConfigMemoryStore.DEFAULT.read("Test.cfg")); }
@Test public void testSimpleCreate() throws Exception { ConfigMemoryStore fs = ConfigMemoryStore.create().build(); assertNull(fs.write("X", null, "foo")); assertEquals("foo", fs.read("X")); }
@Test public void nestedImports() throws Exception { ConfigMemoryStore ms = ConfigMemoryStore.create().build(); ms.write("A1", "", "x=1"); ms.write("A2", "", "<A1>\ny=2"); ms.write("B", "", "<A2>"); Config c = Config.create("B").store(ms).build(); assertEquals("1", c.getString("x")); assertEquals("2", c.getString("y")); c.set("x", "3"); c.set("y", "4"); c.commit(); assertEquals("x=1", ms.read("A1")); assertEquals("<A1>\ny=2", ms.read("A2")); assertEquals("x = 3\ny = 4\n", ms.read("B")); }
@Test public void twoSimpleImports() throws Exception { ConfigMemoryStore ms = ConfigMemoryStore.create().build(); ms.write("A1", "", "x=1"); ms.write("A2", "", "y=2"); ms.write("B", "", "<A1>\n<A2>"); Config c = Config.create("B").store(ms).build(); assertEquals("1", c.getString("x")); assertEquals("2", c.getString("y")); c.set("x", "3"); c.set("y", "4"); c.commit(); assertEquals("x=1", ms.read("A1")); assertEquals("y=2", ms.read("A2")); assertEquals("x = 3\ny = 4\n", ms.read("B")); }
@Test public void oneSimpleImport() throws Exception { ConfigMemoryStore ms = ConfigMemoryStore.create().build(); ms.write("A", "", "x=1"); ms.write("B", "", "<A>"); Config c = Config .create("B") .store(ms) .build(); assertEquals("1", c.getString("x")); c.set("x", "2"); c.commit(); assertEquals("x=1", ms.read("A")); assertEquals("x = 2\n", ms.read("B")); }