1 package org.apache.helix.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Date;
23
24 import org.I0Itec.zkclient.ZkServer;
25 import org.I0Itec.zkclient.exception.ZkNoNodeException;
26 import org.apache.helix.TestHelper;
27 import org.apache.helix.ZNRecord;
28 import org.apache.helix.manager.zk.ZkClient;
29 import org.apache.helix.util.ZKClientPool;
30 import org.testng.Assert;
31 import org.testng.annotations.Test;
32
33
34 public class TestZKClientPool
35 {
36
37 @Test
38 public void test() throws Exception
39 {
40 String testName = "TestZKClientPool";
41 System.out.println("START " + testName + " at " + new Date(System.currentTimeMillis()));
42
43 String zkAddr = "localhost:2189";
44 ZkServer zkServer = TestHelper.startZkSever(zkAddr);
45 ZkClient zkClient = ZKClientPool.getZkClient(zkAddr);
46
47 zkClient.createPersistent("/" + testName, new ZNRecord(testName));
48 ZNRecord record = zkClient.readData("/" + testName);
49 Assert.assertEquals(record.getId(), testName);
50
51 TestHelper.stopZkServer(zkServer);
52
53
54 zkServer = TestHelper.startZkSever(zkAddr);
55 try
56 {
57 zkClient = ZKClientPool.getZkClient(zkAddr);
58 record = zkClient.readData("/" + testName);
59 Assert.fail("should fail on zk no node exception");
60 } catch (ZkNoNodeException e)
61 {
62
63 } catch (Exception e)
64 {
65 Assert.fail("should not fail on exception other than ZkNoNodeException");
66 }
67
68 zkClient.createPersistent("/" + testName, new ZNRecord(testName));
69 record = zkClient.readData("/" + testName);
70 Assert.assertEquals(record.getId(), testName);
71
72 zkClient.close();
73 TestHelper.stopZkServer(zkServer);
74 System.out.println("END " + testName + " at " + new Date(System.currentTimeMillis()));
75 }
76 }