@Test
public void testLocalState() throws Exception {
try (TmpPath dir1_tmp = new TmpPath(); TmpPath dir2_tmp = new TmpPath()) {
GlobalStreamId globalStreamId_a = new GlobalStreamId("a", "a");
GlobalStreamId globalStreamId_b = new GlobalStreamId("b", "b");
GlobalStreamId globalStreamId_c = new GlobalStreamId("c", "c");
GlobalStreamId globalStreamId_d = new GlobalStreamId("d", "d");
LocalState ls1 = new LocalState(dir1_tmp.getPath(), true);
LocalState ls2 = new LocalState(dir2_tmp.getPath(), true);
Assert.assertTrue(ls1.snapshot().isEmpty());
ls1.put("a", globalStreamId_a);
ls1.put("b", globalStreamId_b);
Map<String, GlobalStreamId> expected = new HashMap<>();
expected.put("a", globalStreamId_a);
expected.put("b", globalStreamId_b);
Assert.assertEquals(expected, ls1.snapshot());
Assert.assertEquals(expected, new LocalState(dir1_tmp.getPath(), true).snapshot());
Assert.assertTrue(ls2.snapshot().isEmpty());
ls2.put("b", globalStreamId_a);
ls2.put("b", globalStreamId_b);
ls2.put("b", globalStreamId_c);
ls2.put("b", globalStreamId_d);
Assert.assertEquals(globalStreamId_d, ls2.get("b"));
}
}