#![warn(rust_2018_idioms)] use std::task::Poll; use tokio_test::{ assert_pending, assert_ready, assert_ready_eq, assert_ready_err, assert_ready_ok, }; fn ready() -> Poll<()> { Poll::Ready(()) } fn ready_ok() -> Poll> { Poll::Ready(Ok(())) } fn ready_err() -> Poll> { Poll::Ready(Err(())) } fn pending() -> Poll<()> { Poll::Pending } #[derive(Debug)] enum Test { Data, } #[test] fn assert_ready() { let poll = ready(); assert_ready!(poll); assert_ready!(poll, "some message"); assert_ready!(poll, "{:?}", ()); assert_ready!(poll, "{:?}", Test::Data); } #[test] #[should_panic] fn assert_ready_on_pending() { let poll = pending(); assert_ready!(poll); } #[test] fn assert_pending() { let poll = pending(); assert_pending!(poll); assert_pending!(poll, "some message"); assert_pending!(poll, "{:?}", ()); assert_pending!(poll, "{:?}", Test::Data); } #[test] #[should_panic] fn assert_pending_on_ready() { let poll = ready(); assert_pending!(poll); } #[test] fn assert_ready_ok() { let poll = ready_ok(); assert_ready_ok!(poll); assert_ready_ok!(poll, "some message"); assert_ready_ok!(poll, "{:?}", ()); assert_ready_ok!(poll, "{:?}", Test::Data); } #[test] #[should_panic] fn assert_ok_on_err() { let poll = ready_err(); assert_ready_ok!(poll); } #[test] fn assert_ready_err() { let poll = ready_err(); assert_ready_err!(poll); assert_ready_err!(poll, "some message"); assert_ready_err!(poll, "{:?}", ()); assert_ready_err!(poll, "{:?}", Test::Data); } #[test] #[should_panic] fn assert_err_on_ok() { let poll = ready_ok(); assert_ready_err!(poll); } #[test] fn assert_ready_eq() { let poll = ready(); assert_ready_eq!(poll, ()); assert_ready_eq!(poll, (), "some message"); assert_ready_eq!(poll, (), "{:?}", ()); assert_ready_eq!(poll, (), "{:?}", Test::Data); } #[test] #[should_panic] fn assert_eq_on_not_eq() { let poll = ready_err(); assert_ready_eq!(poll, Ok(())); }