1 package org.apache.helix;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.helix.ZNRecord;
23 import org.apache.helix.controller.HierarchicalDataHolder;
24 import org.apache.helix.manager.zk.ZkClient;
25 import org.testng.annotations.Test;
26 import org.testng.AssertJUnit;
27 import java.io.FileFilter;
28
29 import org.testng.Assert;
30 import org.testng.annotations.Test;
31
32
33 public class TestHierarchicalDataStore extends ZkUnitTestBase
34 {
35 protected static ZkClient _zkClientString = null;
36
37 @Test (groups = {"unitTest"})
38 public void testHierarchicalDataStore()
39 {
40 _zkClientString = new ZkClient(ZK_ADDR, 1000, 3000);
41
42 String path = "/tmp/testHierarchicalDataStore";
43 FileFilter filter = null;
44
45
46 _zkClientString.deleteRecursive(path);
47 HierarchicalDataHolder<ZNRecord> dataHolder = new HierarchicalDataHolder<ZNRecord>(
48 _zkClientString, path, filter);
49 dataHolder.print();
50 AssertJUnit.assertFalse(dataHolder.refreshData());
51
52
53 add(path, "root data");
54 AssertJUnit.assertTrue(dataHolder.refreshData());
55 dataHolder.print();
56
57
58 add(path + "/child1", "child 1 data");
59 add(path + "/child2", "child 2 data");
60 AssertJUnit.assertTrue(dataHolder.refreshData());
61 dataHolder.print();
62
63
64 add(path + "/child1" + "/grandchild1", "grand child 1 data");
65 add(path + "/child1" + "/grandchild2", "grand child 2 data");
66 AssertJUnit.assertTrue(dataHolder.refreshData());
67 dataHolder.print();
68
69 AssertJUnit.assertFalse(dataHolder.refreshData());
70
71 set(path + "/child1", "new child 1 data");
72 AssertJUnit.assertTrue(dataHolder.refreshData());
73 dataHolder.print();
74 }
75
76 private void set(String path, String data)
77 {
78 _zkClientString.writeData(path, data);
79 }
80
81 private void add(String path, String data)
82 {
83 _zkClientString.createPersistent(path, true);
84 _zkClientString.writeData(path, data);
85 }
86
87 }