github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/zk/zookeeper.create_test.go (about) 1 package zk 2 3 import ( 4 "fmt" 5 "reflect" 6 "testing" 7 "time" 8 9 "strings" 10 11 "github.com/sereiner/library/utility" 12 ) 13 14 /* 15 192.168.0.159:2181 16 192.168.0.154:2181 17 做的集群,159为主 18 */ 19 20 var ( 21 masterAddress = []string{"192.168.0.159:2181", "192.168.0.154:2181"} 22 ) 23 24 // TestCreatePersistentNode 测试监控一个节点的值是否发送变化 25 func TestCreatePersistentNode(t *testing.T) { 26 zk, err := New(masterAddress, time.Second) 27 expect(t, err, nil) 28 err = zk.Connect() 29 expect(t, err, nil) 30 31 //创建永久节点 32 path1 := fmt.Sprintf("/%s", utility.GetGUID()) 33 err = zk.CreatePersistentNode(path1, "data") 34 expect(t, err, nil) 35 36 //检查节点是否存在 37 b, err := zk.Exists(path1) 38 expect(t, err, nil) 39 expect(t, b, true) 40 zk.Close() 41 42 //关闭连接 43 b, err = zk.Exists(path1) 44 expect(t, b, false) 45 expect(t, err, ErrColientCouldNotConnect) 46 47 //重新连接 48 err = zk.Reconnect() 49 expect(t, err, nil) 50 51 //节点应该存在 52 b, err = zk.Exists(path1) 53 expect(t, err, nil) 54 expect(t, b, true) 55 56 //删除节点 57 err = zk.Delete(path1) 58 expect(t, err, nil) 59 } 60 61 // TestBindWatchValue 测试监控一个节点的值是否发送变化 62 func TestBindCreateTempNode(t *testing.T) { 63 zk, err := New(masterAddress, time.Second) 64 expect(t, err, nil) 65 err = zk.Connect() 66 expect(t, err, nil) 67 68 //创建临时节点 69 path1 := fmt.Sprintf("/T%s", utility.GetGUID()) 70 err = zk.CreateTempNode(path1, "data") 71 expect(t, err, nil) 72 73 //检查节点是否存在 74 b, err := zk.Exists(path1) 75 expect(t, err, nil) 76 expect(t, b, true) 77 zk.Close() 78 79 //关闭连接 80 b, err = zk.Exists(path1) 81 expect(t, b, false) 82 expect(t, err, ErrColientCouldNotConnect) 83 84 //重新连接 85 err = zk.Reconnect() 86 expect(t, err, nil) 87 88 //节点应该存在 89 b, err = zk.Exists(path1) 90 expect(t, err, nil) 91 expect(t, b, false) 92 } 93 94 // TestBindWatchValue 测试监控一个节点的值是否发送变化 95 func TestBindCreateSeqNode(t *testing.T) { 96 zk, err := New(masterAddress, time.Second) 97 expect(t, err, nil) 98 err = zk.Connect() 99 expect(t, err, nil) 100 101 //创建临时节点 102 path1 := fmt.Sprintf("/S%s_", utility.GetGUID()) 103 rpath, err := zk.CreateSeqNode(path1, "data") 104 expect(t, err, nil) 105 expect(t, strings.HasPrefix(rpath, path1), true) 106 //检查节点是否存在 107 b, err := zk.Exists(rpath) 108 expect(t, err, nil) 109 expect(t, b, true) 110 zk.Close() 111 112 //关闭连接 113 b, err = zk.Exists(rpath) 114 expect(t, b, false) 115 expect(t, err, ErrColientCouldNotConnect) 116 117 //重新连接 118 err = zk.Reconnect() 119 expect(t, err, nil) 120 121 //节点应该存在 122 b, err = zk.Exists(rpath) 123 expect(t, err, nil) 124 expect(t, b, false) 125 } 126 127 // TestBindWatchValue 测试监控一个节点的值是否发送变化 128 func TestDelete(t *testing.T) { 129 zk, err := New(masterAddress, time.Second) 130 expect(t, err, nil) 131 err = zk.Connect() 132 expect(t, err, nil) 133 134 //创建临时节点 135 path1 := fmt.Sprintf("/S%s_", utility.GetGUID()) 136 rpath, err := zk.CreateSeqNode(path1, "data") 137 expect(t, err, nil) 138 expect(t, strings.HasPrefix(rpath, path1), true) 139 //检查节点是否存在 140 b, err := zk.Exists(rpath) 141 expect(t, err, nil) 142 expect(t, b, true) 143 144 //删除节点 145 err = zk.Delete(rpath) 146 expect(t, err, nil) 147 148 //检查是否存在 149 b, err = zk.Exists(rpath) 150 expect(t, err, nil) 151 expect(t, b, false) 152 } 153 func expect(t *testing.T, a interface{}, b interface{}) { 154 if a != b { 155 t.Errorf("Expected %v (type %v) - Got %v (type %v)", b, reflect.TypeOf(b), a, reflect.TypeOf(a)) 156 } 157 }