diff --git a/src/change_stream.rs b/src/change_stream.rs index 72e89e0..2b40276 100644 --- a/src/change_stream.rs +++ b/src/change_stream.rs @@ -60,7 +60,6 @@ impl<'a> Iterator for ChangeStream<'a> { if success == 1 { assert!(!bson_ptr.is_null()); - println!("DEBUG0: {}", success); let bsonc = Bsonc::from_ptr(bson_ptr); match bsonc.as_document() { @@ -68,9 +67,7 @@ impl<'a> Iterator for ChangeStream<'a> { Err(error) => return Some(Err(error.into())) } } else { - println!("DEBUG1: {}", success); let error = self.error(); - println!("DEBUG11: {}", error); if error.is_empty() { None } else { diff --git a/tests/change_stream.rs b/tests/change_stream.rs index 9700995..188e55b 100644 --- a/tests/change_stream.rs +++ b/tests/change_stream.rs @@ -2,19 +2,42 @@ use std::sync::Arc; use std::thread; +use std::time::Duration; use mongo_driver::client::{ClientPool,Uri}; -use mongo_driver::Result; #[test] fn test_change_stream() { let uri = Uri::new("mongodb://localhost:27017/").unwrap(); let pool = Arc::new(ClientPool::new(uri, None)); let client = pool.pop(); - let mut collection = client.get_collection("rust_driver_test", "change_stream"); + let collection = client.get_collection("rust_driver_test", "change_stream"); - let stream = collection.watch(&doc!{}, &doc!{"maxAwaitTimeMS": 10_000}).unwrap(); - let next = stream.into_iter().next().unwrap().unwrap(); - assert_eq!(true, false); + let cloned_pool = pool.clone(); + let guard = thread::spawn(move || { + let client = cloned_pool.pop(); + let collection = client.get_collection("rust_driver_test", "change_stream"); + let stream = collection.watch(&doc!{}, &doc!{"maxAwaitTimeMS": 1_000}).unwrap(); + let mut counter = 0; + for x in stream { + let c = x.unwrap().get_document("fullDocument").unwrap().get_i32("c").unwrap(); + if c == counter { + counter += 1; + } + if counter == 15 { + break; + } + }; + counter + }); + + thread::sleep(Duration::from_millis(1)); + + for i in 0..15 { + collection.insert(&doc! {"c": i}, None).unwrap(); + } + + + assert_eq!(15, guard.join().unwrap()); }