pub struct MockSubscriber<E> {
_phantom: PhantomData<E>,
}Expand description
Helper for creating test event streams.
Wraps a list of events into a stream of MockReceivedEvent values and
returns ack-checkers alongside so tests can verify acknowledgment.
use arminius_lib_message_bus::{
Event, ReceivedEvent, mock::MockSubscriber,
};
use futures::StreamExt;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
struct Ping {
id: u32,
}
impl Event for Ping {
const SUBJECT: &str = "Ping.v1";
}
let (mut stream, checkers) =
MockSubscriber::new().create_stream(vec![Ping { id: 1 }]);
while let Some(Ok(event)) = stream.next().await {
event.ack().await.unwrap();
}
assert!(checkers[0].was_acked());Fields§
§_phantom: PhantomData<E>Binds the subscriber to its event type E.
Implementations§
Source§impl<E: Event + Clone> MockSubscriber<E>
impl<E: Event + Clone> MockSubscriber<E>
Sourcepub fn create_stream(
&self,
events: Vec<E>,
) -> (impl Stream<Item = Result<MockReceivedEvent<E>, Error>> + use<E>, Vec<MockReceivedEvent<E>>)
pub fn create_stream( &self, events: Vec<E>, ) -> (impl Stream<Item = Result<MockReceivedEvent<E>, Error>> + use<E>, Vec<MockReceivedEvent<E>>)
Wraps events into a stream of MockReceivedEvent values.
Returns the stream and a parallel Vec of the same wrapped events so
callers can call MockReceivedEvent::was_acked after processing.
Trait Implementations§
Source§impl<E: Debug> Debug for MockSubscriber<E>
impl<E: Debug> Debug for MockSubscriber<E>
Source§impl<E: Default> Default for MockSubscriber<E>
impl<E: Default> Default for MockSubscriber<E>
Source§fn default() -> MockSubscriber<E>
fn default() -> MockSubscriber<E>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<E> Freeze for MockSubscriber<E>
impl<E> RefUnwindSafe for MockSubscriber<E>where
E: RefUnwindSafe,
impl<E> Send for MockSubscriber<E>where
E: Send,
impl<E> Sync for MockSubscriber<E>where
E: Sync,
impl<E> Unpin for MockSubscriber<E>where
E: Unpin,
impl<E> UnsafeUnpin for MockSubscriber<E>
impl<E> UnwindSafe for MockSubscriber<E>where
E: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more