input_pipeline/
observe_fake_events_input_handler.rs1#[cfg(test)]
6use crate::{input_device, input_handler};
7#[cfg(test)]
8use async_trait::async_trait;
9#[cfg(test)]
10use futures::channel::mpsc::Sender;
11#[cfg(test)]
12use std::cell::RefCell;
13#[cfg(test)]
14use std::rc::Rc;
15
16#[cfg(test)]
19pub struct ObserveFakeEventsInputHandler {
20 event_sender: RefCell<Sender<input_device::InputEvent>>,
22}
23
24#[cfg(test)]
25impl ObserveFakeEventsInputHandler {
26 pub fn new(event_sender: Sender<input_device::InputEvent>) -> Rc<Self> {
27 Rc::new(ObserveFakeEventsInputHandler { event_sender: RefCell::new(event_sender) })
28 }
29}
30
31#[async_trait(?Send)]
32#[cfg(test)]
33impl input_handler::InputHandler for ObserveFakeEventsInputHandler {
34 async fn handle_input_event(
35 self: Rc<Self>,
36 input_event: input_device::InputEvent,
37 ) -> Vec<input_device::InputEvent> {
38 match self.event_sender.borrow_mut().try_send(input_event.clone()) {
39 Err(_) => assert!(false),
40 _ => {}
41 };
42
43 vec![input_event]
44 }
45
46 fn set_handler_healthy(self: std::rc::Rc<Self>) {
47 }
49
50 fn set_handler_unhealthy(self: std::rc::Rc<Self>, _msg: &str) {
51 }
53}