public void testPreferencesEvents() throws Exception { storage.toFolder(true); FileUtil.getConfigRoot().addRecursiveListener(new FileListener()); pref.addNodeChangeListener(new NodeListener()); String newPath = "a/b/c"; String[] paths = newPath.split("/"); FileObject fo = null; FileObject fo0 = null; for (int i = 0; i < paths.length; i++) { String path = paths[i]; fo = FileUtil.createFolder((fo == null) ? FileUtil.getConfigRoot() : fo, path); if (i == 0) { fo0 = fo; } nodeAddedEvent.await(); assertEquals("Missing node added event", 0, nodeAddedEvent.getCount()); nodeAddedEvent = new CountDownLatch(1); Preferences pref2 = pref.node(fo.getPath()); pref2.addNodeChangeListener(new NodeListener()); } FileObject fo1 = FileUtil.createData(fo, "a.properties"); nodeAddedEvent.await(); assertEquals("Missing node added event", 0, nodeAddedEvent.getCount()); nodeRemovedEvent = new CountDownLatch(paths.length + 1); fo0.delete(); nodeRemovedEvent.await(); assertEquals("Missing node removed event", 0, nodeRemovedEvent.getCount()); }
public void testNode5() throws BackingStoreException { Preferences child = pref.node("a"); child.put("key", "value"); child.flush(); assertNotNull(storage.toFolder()); assertNull(storage.toPropertiesFile()); }
public void testRemoveParentNode() throws BackingStoreException { assertNull(storage.toFolder()); assertNull(storage.toPropertiesFile()); Preferences subnode = pref.node("subnode"); assertNull(storage.toFolder()); assertNull(storage.toPropertiesFile()); subnode.put("key", "value"); subnode.flush(); assertNotNull(storage.toFolder()); assertNull(storage.toPropertiesFile()); subnode.removeNode(); pref.flush(); assertNull(storage.toPropertiesFile()); assertNull(storage.toFolder()); assertFalse(storage.existsNode()); }
@RandomlyFails // FSException: Invalid lock (from flush) public void testRemoveNode() throws BackingStoreException { assertNull(storage.toFolder()); assertNull(storage.toPropertiesFile()); pref.put("key", "value"); pref.node("subnode").put("key", "value"); pref.flush(); assertNotNull(storage.toPropertiesFile()); assertNotNull(storage.toFolder()); pref.removeNode(); pref.flush(); assertNull(storage.toPropertiesFile()); assertNull(storage.toFolder()); assertFalse(storage.existsNode()); pref.sync(); }
public void testPreferencesEvents2() throws Exception { pref.addNodeChangeListener(new NodeListener()); pref.addPreferenceChangeListener(new PrefListener()); Preferences child = pref.node("a"); nodeAddedEvent.await(); assertEquals("Missing node added event", 0, nodeAddedEvent.getCount()); pref.put("key", "value"); prefChangedEvent.await(); assertEquals("Missing preference change event", 0, prefChangedEvent.getCount()); pref.remove("key"); prefRemovedEvent.await(); assertEquals("Missing preference removed event", 0, prefRemovedEvent.getCount()); child.removeNode(); nodeRemovedEvent.await(); assertEquals("Missing node removed event", 0, nodeRemovedEvent.getCount()); }
public void testChildrenNames() throws Exception { Preferences subnode = pref.node("c1"); subnode.put("k", "v"); subnode.flush(); subnode = pref.node("c2"); subnode.put("k", "v"); subnode.flush(); subnode = pref.node("c3/c4"); subnode.put("k", "v"); subnode.flush(); assertEquals( new TreeSet<String>(Arrays.asList("c1", "c2", "c3")), new TreeSet<String>(Arrays.asList(storage.childrenNames()))); pref.node("c2").removeNode(); assertEquals( new TreeSet<String>(Arrays.asList("c1", "c3")), new TreeSet<String>(Arrays.asList(storage.childrenNames()))); pref.node("c3").removeNode(); assertEquals( Collections.singleton("c1"), new TreeSet<String>(Arrays.asList(storage.childrenNames()))); pref.node("c1").removeNode(); assertEquals( Collections.emptySet(), new TreeSet<String>(Arrays.asList(storage.childrenNames()))); }
public void testNode4() throws BackingStoreException { pref.node("a"); testNode(); }