fn zk_read_write_watcher()

in registry/zookeeper/src/lib.rs [391:441]


    fn zk_read_write_watcher() {
        // https://github.com/bonifaido/rust-zookeeper/blob/master/examples/zookeeper_example.rs
        // using ENV to set zookeeper server urls
        let zkr = ZookeeperRegistry::default();
        let zk_client = zkr.get_client();
        let watcher = TestZkWatcher {
            watcher: Arc::new(None),
        };
        if zk_client.exists("/test", true).is_err() {
            zk_client
                .create(
                    "/test",
                    vec![1, 3],
                    Acl::open_unsafe().clone(),
                    CreateMode::Ephemeral,
                )
                .unwrap();
        }
        let zk_res = zk_client.create(
            "/test",
            "hello".into(),
            Acl::open_unsafe().clone(),
            CreateMode::Ephemeral,
        );
        let result = zk_client.get_children_w("/test", watcher);
        assert!(result.is_ok());
        if zk_client.exists("/test/a", true).is_err() {
            zk_client.delete("/test/a", None).unwrap();
        }
        if zk_client.exists("/test/a", true).is_err() {
            zk_client.delete("/test/b", None).unwrap();
        }
        let zk_res = zk_client.create(
            "/test/a",
            "hello".into(),
            Acl::open_unsafe().clone(),
            CreateMode::Ephemeral,
        );
        let zk_res = zk_client.create(
            "/test/b",
            "world".into(),
            Acl::open_unsafe().clone(),
            CreateMode::Ephemeral,
        );
        let test_a_result = zk_client.get_data("/test", true);
        assert!(test_a_result.is_ok());
        let vec1 = test_a_result.unwrap().0;
        // data in /test should equals to "hello"
        assert_eq!(String::from_utf8(vec1).unwrap(), "hello");
        zk_client.close().unwrap()
    }