mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00
39 lines
1.0 KiB
Rust
39 lines
1.0 KiB
Rust
#![cfg(feature = "broken")]
|
|
#![cfg(feature = "util")]
|
|
|
|
use futures::Async::*;
|
|
use tokio_buf::{BufStream, BufStreamExt};
|
|
|
|
mod support;
|
|
use support::*;
|
|
|
|
#[test]
|
|
fn chain() {
|
|
// Chain one with one
|
|
//
|
|
let mut bs = one("hello").chain(one("world"));
|
|
|
|
assert_buf_eq!(bs.poll_buf(), "hello");
|
|
assert_buf_eq!(bs.poll_buf(), "world");
|
|
assert_none!(bs.poll_buf());
|
|
|
|
// Chain multi with multi
|
|
let mut bs = list(&["foo", "bar"]).chain(list(&["baz", "bok"]));
|
|
|
|
assert_buf_eq!(bs.poll_buf(), "foo");
|
|
assert_buf_eq!(bs.poll_buf(), "bar");
|
|
assert_buf_eq!(bs.poll_buf(), "baz");
|
|
assert_buf_eq!(bs.poll_buf(), "bok");
|
|
assert_none!(bs.poll_buf());
|
|
|
|
// Chain includes a not ready call
|
|
//
|
|
let mut bs = new_mock(&[Ok(Ready("foo")), Ok(NotReady), Ok(Ready("bar"))]).chain(one("baz"));
|
|
|
|
assert_buf_eq!(bs.poll_buf(), "foo");
|
|
assert_not_ready!(bs.poll_buf());
|
|
assert_buf_eq!(bs.poll_buf(), "bar");
|
|
assert_buf_eq!(bs.poll_buf(), "baz");
|
|
assert_none!(bs.poll_buf());
|
|
}
|