diff options
Diffstat (limited to 'tokio-test/tests/clock.rs')
-rw-r--r-- | tokio-test/tests/clock.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tokio-test/tests/clock.rs b/tokio-test/tests/clock.rs new file mode 100644 index 00000000..6690a7cb --- /dev/null +++ b/tokio-test/tests/clock.rs @@ -0,0 +1,44 @@ +#[macro_use] +extern crate tokio_test; +extern crate futures; +extern crate tokio_timer; + +use futures::Future; +use std::time::{Duration, Instant}; +use tokio_test::clock::MockClock; +use tokio_test::task::MockTask; +use tokio_timer::Delay; + +#[test] +fn clock() { + let mut mock = MockClock::new(); + + mock.enter(|handle| { + let deadline = Instant::now() + Duration::from_secs(1); + let mut delay = Delay::new(deadline); + + assert_not_ready!(delay.poll()); + + handle.advance(Duration::from_secs(2)); + + assert_ready!(delay.poll()); + }); +} + +#[test] +fn notify() { + let deadline = Instant::now() + Duration::from_secs(1); + let mut mock = MockClock::new(); + let mut task = MockTask::new(); + + mock.enter(|handle| { + let mut delay = Delay::new(deadline); + + task.enter(|| assert_not_ready!(delay.poll())); + + handle.advance(Duration::from_secs(1)); + + assert!(task.is_notified()); + assert_ready!(delay.poll()); + }); +} |