You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
use futures::{
|
|
stream::{self, StreamExt, TryStreamExt},
|
|
task::Poll,
|
|
};
|
|
use futures_test::task::noop_context;
|
|
|
|
#[test]
|
|
fn try_filter_map_after_err() {
|
|
let cx = &mut noop_context();
|
|
let mut s = stream::iter(1..=3)
|
|
.map(Ok)
|
|
.try_filter_map(|v| async move { Err::<Option<()>, _>(v) })
|
|
.filter_map(|r| async move { r.ok() })
|
|
.boxed();
|
|
assert_eq!(Poll::Ready(None), s.poll_next_unpin(cx));
|
|
}
|
|
|
|
#[test]
|
|
fn try_skip_while_after_err() {
|
|
let cx = &mut noop_context();
|
|
let mut s = stream::iter(1..=3)
|
|
.map(Ok)
|
|
.try_skip_while(|_| async move { Err::<_, ()>(()) })
|
|
.filter_map(|r| async move { r.ok() })
|
|
.boxed();
|
|
assert_eq!(Poll::Ready(None), s.poll_next_unpin(cx));
|
|
}
|
|
|
|
#[test]
|
|
fn try_take_while_after_err() {
|
|
let cx = &mut noop_context();
|
|
let mut s = stream::iter(1..=3)
|
|
.map(Ok)
|
|
.try_take_while(|_| async move { Err::<_, ()>(()) })
|
|
.filter_map(|r| async move { r.ok() })
|
|
.boxed();
|
|
assert_eq!(Poll::Ready(None), s.poll_next_unpin(cx));
|
|
}
|