summaryrefslogtreecommitdiffstats
path: root/tokio-test/tests
diff options
context:
space:
mode:
authorLucio Franco <luciofranco14@gmail.com>2019-04-23 23:17:57 -0400
committerCarl Lerche <me@carllerche.com>2019-04-23 20:17:57 -0700
commite5cf0cc717396d8131e3c8825667648fd7f17013 (patch)
treed389306a51b9e5d6b14aada2981f3a4075852489 /tokio-test/tests
parent62f34e15ce6294f6273c33548772a70d76f2ea61 (diff)
Introduce `tokio-test` crate (#1030)
Diffstat (limited to 'tokio-test/tests')
-rw-r--r--tokio-test/tests/clock.rs44
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());
+ });
+}