From 8cf17f49e16cff507d83bdbe654e65c19e136e04 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Tue, 18 Sep 2018 15:56:29 +0200 Subject: [PATCH] Add a basic test to listeners (#489) --- core/src/nodes/listeners.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/core/src/nodes/listeners.rs b/core/src/nodes/listeners.rs index d073f57c..660a5482 100644 --- a/core/src/nodes/listeners.rs +++ b/core/src/nodes/listeners.rs @@ -219,3 +219,39 @@ where } } } + +#[cfg(test)] +mod tests { + extern crate libp2p_tcp_transport; + use super::*; + use transport; + use tokio::runtime::current_thread::Runtime; + + #[test] + fn incoming_event() { + let (tx, rx) = transport::connector(); + + let mut listeners = ListenersStream::new(rx); + listeners.listen_on("/memory".parse().unwrap()).unwrap(); + + let dial = tx.dial("/memory".parse().unwrap()).unwrap_or_else(|_| panic!()); + + let future = listeners + .into_future() + .map_err(|(err, _)| err) + .and_then(|(event, _)| { + match event { + Some(ListenersEvent::Incoming { listen_addr, upgrade }) => { + assert_eq!(listen_addr, "/memory".parse().unwrap()); + upgrade.map(|_| ()).map_err(|_| panic!()) + }, + _ => panic!() + } + }) + .select(dial.map(|_| ()).map_err(|_| panic!())) + .map_err(|(err, _)| err); + + let mut runtime = Runtime::new().unwrap(); + runtime.block_on(future).unwrap(); + } +}