diff options
author | Lucio Franco <luciofranco14@gmail.com> | 2019-04-23 23:17:57 -0400 |
---|---|---|
committer | Carl Lerche <me@carllerche.com> | 2019-04-23 20:17:57 -0700 |
commit | e5cf0cc717396d8131e3c8825667648fd7f17013 (patch) | |
tree | d389306a51b9e5d6b14aada2981f3a4075852489 /tokio-test/tests | |
parent | 62f34e15ce6294f6273c33548772a70d76f2ea61 (diff) |
Introduce `tokio-test` crate (#1030)
Diffstat (limited to 'tokio-test/tests')
-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()); + }); +} |