From 3e7cc18905dc2ade128003b3aa1c30f8557dd637 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Sat, 7 Aug 2021 18:10:29 +0200 Subject: [PATCH] add more tests on backend --- price-feed/src/backend.rs | 86 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/price-feed/src/backend.rs b/price-feed/src/backend.rs index 4bf0f3308d2..8f40dc7bd4b 100644 --- a/price-feed/src/backend.rs +++ b/price-feed/src/backend.rs @@ -112,11 +112,21 @@ pub async fn run_pyth_feed(pythd_host: &String) -> (Pyth, mpsc::Receiver> = Arc::new(RwLock::new(HashMap::new())); + let (feed_in, feed_out) = mpsc::channel::(8); + let signals = Signals::new(&[]) + .expect("could not create signals stream") + .fuse(); + let backend = Backend::new(prices_cache.clone(), feed_out, signals).await; + + for &event in events { + feed_in + .send(event) + .await + .expect("could not send feed notification"); + } + + /* Drop the channel so that the backend exit and we join it. + This will ensure the events have been processed. + */ + drop(feed_in); + backend + .shutdown_handle + .await + .expect("could not join on backend handle"); + + let prices_cache_r = prices_cache.read().expect("could not acquire read lock"); + assert_eq!( + *prices_cache_r, + expected.iter().copied().collect::() + ); + } + } + } }