diff options
Diffstat (limited to 'third_party/rust/tokio-timer/tests/throttle.rs')
-rw-r--r-- | third_party/rust/tokio-timer/tests/throttle.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/third_party/rust/tokio-timer/tests/throttle.rs b/third_party/rust/tokio-timer/tests/throttle.rs new file mode 100644 index 0000000000..253309c988 --- /dev/null +++ b/third_party/rust/tokio-timer/tests/throttle.rs @@ -0,0 +1,51 @@ +extern crate futures; +extern crate tokio_executor; +extern crate tokio_timer; + +#[macro_use] +mod support; +use support::*; + +use futures::{prelude::*, sync::mpsc}; +use tokio_timer::throttle::Throttle; + +#[test] +fn throttle() { + mocked(|timer, _| { + let (tx, rx) = mpsc::unbounded(); + let mut stream = Throttle::new(rx, ms(1)); + + assert_not_ready!(stream); + + for i in 0..3 { + tx.unbounded_send(i).unwrap(); + } + for i in 0..3 { + assert_ready_eq!(stream, Some(i)); + assert_not_ready!(stream); + + advance(timer, ms(1)); + } + + assert_not_ready!(stream); + }); +} + +#[test] +fn throttle_dur_0() { + mocked(|_, _| { + let (tx, rx) = mpsc::unbounded(); + let mut stream = Throttle::new(rx, ms(0)); + + assert_not_ready!(stream); + + for i in 0..3 { + tx.unbounded_send(i).unwrap(); + } + for i in 0..3 { + assert_ready_eq!(stream, Some(i)); + } + + assert_not_ready!(stream); + }); +} |