@@ -14,24 +14,28 @@ const TAG: &str = "3.9.0";
14
14
/// # Example
15
15
///
16
16
/// ```
17
- /// use testcontainers_modules::{testcontainers::runners::AsyncRunner, zookeeper};
18
- /// # tokio::runtime::Runtime::new().unwrap().block_on(async {
19
- /// let node = zookeeper::Zookeeper::default().start().await.unwrap();
20
- /// let zk_url = format!(
21
- /// "{}:{}",
22
- /// node.get_host().await.unwrap(),
23
- /// node.get_host_port_ipv4(2181).await.unwrap(),
24
- /// );
25
- /// let client = zookeeper_client::Client::connect(&zk_url)
26
- /// .await
27
- /// .expect("connect to Zookeeper");
17
+ /// async {
18
+ /// use testcontainers_modules::{testcontainers::runners::AsyncRunner, zookeeper};
28
19
///
29
- /// let path = "/test";
30
- /// let (_, stat_watcher) = client
31
- /// .check_and_watch_stat(path)
32
- /// .await
33
- /// .expect("stat watcher created");
34
- /// # })
20
+ /// let node = zookeeper::Zookeeper::default().start().await.unwrap();
21
+ /// let zk_url = format!(
22
+ /// "{}:{}",
23
+ /// node.get_host().await.unwrap(),
24
+ /// node.get_host_port_ipv4(2181).await.unwrap(),
25
+ /// );
26
+ /// let zk_socket_addr = tokio::net::lookup_host(&zk_url)
27
+ /// .await
28
+ /// .unwrap()
29
+ /// .next()
30
+ /// .unwrap();
31
+ ///
32
+ /// let (zk, default_watcher) = tokio_zookeeper::ZooKeeper::connect(&zk_socket_addr)
33
+ /// .await
34
+ /// .expect("connect to Zookeeper");
35
+ ///
36
+ /// let path = "/test";
37
+ /// let _stat = zk.watch().exists(path).await.expect("stat received");
38
+ /// };
35
39
/// ```
36
40
///
37
41
///
@@ -71,8 +75,10 @@ impl Image for Zookeeper {
71
75
72
76
#[ cfg( test) ]
73
77
mod tests {
78
+ use futures:: StreamExt ;
74
79
use rustls:: crypto:: CryptoProvider ;
75
- use zookeeper_client:: { Acls , Client , CreateMode , EventType } ;
80
+ use tokio:: net:: lookup_host;
81
+ use tokio_zookeeper:: * ;
76
82
77
83
use crate :: { testcontainers:: runners:: AsyncRunner , zookeeper:: Zookeeper as ZookeeperImage } ;
78
84
@@ -88,27 +94,23 @@ mod tests {
88
94
89
95
let node = ZookeeperImage :: default ( ) . start ( ) . await ?;
90
96
91
- let host_ip = node. get_host ( ) . await ?;
97
+ let host = node. get_host ( ) . await ?;
92
98
let host_port = node. get_host_port_ipv4 ( 2181 ) . await ?;
93
- let zk_url = format ! ( "{host_ip }:{host_port}" ) ;
94
- let client = Client :: connect ( & zk_url)
95
- . await
96
- . expect ( "connect to Zookeeper" ) ;
99
+ let zk_url = format ! ( "{host }:{host_port}" ) ;
100
+ let zk_socket_addr = lookup_host ( & zk_url) . await ? . next ( ) . unwrap ( ) ;
101
+
102
+ let ( zk , mut default_watcher ) = ZooKeeper :: connect ( & zk_socket_addr ) . await . unwrap ( ) ;
97
103
98
104
let path = "/test" ;
99
- let ( _, stat_watcher) = client
100
- . check_and_watch_stat ( path)
101
- . await
102
- . expect ( "stat watcher created" ) ;
103
-
104
- let create_options = CreateMode :: Ephemeral . with_acls ( Acls :: anyone_all ( ) ) ;
105
- let ( _, _) = client
106
- . create ( path, & [ 1 , 2 ] , & create_options)
107
- . await
105
+ let _stat = zk. watch ( ) . exists ( path) . await . expect ( "stat requested" ) ;
106
+
107
+ let path = zk
108
+ . create ( path, & [ 1 , 2 ] , Acl :: open_unsafe ( ) , CreateMode :: Ephemeral )
109
+ . await ?
108
110
. expect ( "create a node" ) ;
109
111
110
- let event = stat_watcher . changed ( ) . await ;
111
- assert_eq ! ( event. event_type, EventType :: NodeCreated ) ;
112
+ let event = default_watcher . next ( ) . await . expect ( "event received" ) ;
113
+ assert_eq ! ( event. event_type, WatchedEventType :: NodeCreated ) ;
112
114
assert_eq ! ( event. path, path) ;
113
115
Ok ( ( ) )
114
116
}
0 commit comments