|
@ -11,14 +11,14 @@ async fn taker_receives_order_from_maker_on_publication() { |
|
|
let _guard = init_tracing(); |
|
|
let _guard = init_tracing(); |
|
|
let (mut maker, mut taker) = start_both().await; |
|
|
let (mut maker, mut taker) = start_both().await; |
|
|
|
|
|
|
|
|
assert!(is_next_none(taker.order_feed()).await); |
|
|
assert!(is_next_none(taker.order_feed()).await.unwrap()); |
|
|
|
|
|
|
|
|
maker.publish_order(dummy_new_order()).await; |
|
|
maker.publish_order(dummy_new_order()).await; |
|
|
|
|
|
|
|
|
let (published, received) = |
|
|
let (published, received) = |
|
|
tokio::join!(next_some(maker.order_feed()), next_some(taker.order_feed())); |
|
|
tokio::join!(next_some(maker.order_feed()), next_some(taker.order_feed())); |
|
|
|
|
|
|
|
|
assert_is_same_order(&published, &received); |
|
|
assert_is_same_order(&published.unwrap(), &received.unwrap()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#[tokio::test] |
|
|
#[tokio::test] |
|
@ -27,15 +27,17 @@ async fn taker_takes_order_and_maker_rejects() { |
|
|
let (mut maker, mut taker) = start_both().await; |
|
|
let (mut maker, mut taker) = start_both().await; |
|
|
|
|
|
|
|
|
// TODO: Why is this needed? For the cfd stream it is not needed
|
|
|
// TODO: Why is this needed? For the cfd stream it is not needed
|
|
|
is_next_none(taker.order_feed()).await; |
|
|
is_next_none(taker.order_feed()).await.unwrap(); |
|
|
|
|
|
|
|
|
maker.publish_order(dummy_new_order()).await; |
|
|
maker.publish_order(dummy_new_order()).await; |
|
|
|
|
|
|
|
|
let (_, received) = next_order(maker.order_feed(), taker.order_feed()).await; |
|
|
let (_, received) = next_order(maker.order_feed(), taker.order_feed()) |
|
|
|
|
|
.await |
|
|
|
|
|
.unwrap(); |
|
|
|
|
|
|
|
|
taker.take_order(received.clone(), Usd::new(dec!(10))).await; |
|
|
taker.take_order(received.clone(), Usd::new(dec!(10))).await; |
|
|
|
|
|
|
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await; |
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await.unwrap(); |
|
|
assert_is_same_order(&taker_cfd.order, &received); |
|
|
assert_is_same_order(&taker_cfd.order, &received); |
|
|
assert_is_same_order(&maker_cfd.order, &received); |
|
|
assert_is_same_order(&maker_cfd.order, &received); |
|
|
assert!(matches!( |
|
|
assert!(matches!( |
|
@ -49,7 +51,7 @@ async fn taker_takes_order_and_maker_rejects() { |
|
|
|
|
|
|
|
|
maker.reject_take_request(received.clone()).await; |
|
|
maker.reject_take_request(received.clone()).await; |
|
|
|
|
|
|
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await; |
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await.unwrap(); |
|
|
// TODO: More elaborate Cfd assertions
|
|
|
// TODO: More elaborate Cfd assertions
|
|
|
assert_is_same_order(&taker_cfd.order, &received); |
|
|
assert_is_same_order(&taker_cfd.order, &received); |
|
|
assert_is_same_order(&maker_cfd.order, &received); |
|
|
assert_is_same_order(&maker_cfd.order, &received); |
|
@ -62,14 +64,16 @@ async fn taker_takes_order_and_maker_accepts_and_contract_setup() { |
|
|
let _guard = init_tracing(); |
|
|
let _guard = init_tracing(); |
|
|
let (mut maker, mut taker) = start_both().await; |
|
|
let (mut maker, mut taker) = start_both().await; |
|
|
|
|
|
|
|
|
is_next_none(taker.order_feed()).await; |
|
|
is_next_none(taker.order_feed()).await.unwrap(); |
|
|
|
|
|
|
|
|
maker.publish_order(dummy_new_order()).await; |
|
|
maker.publish_order(dummy_new_order()).await; |
|
|
|
|
|
|
|
|
let (_, received) = next_order(maker.order_feed(), taker.order_feed()).await; |
|
|
let (_, received) = next_order(maker.order_feed(), taker.order_feed()) |
|
|
|
|
|
.await |
|
|
|
|
|
.unwrap(); |
|
|
|
|
|
|
|
|
taker.take_order(received.clone(), Usd::new(dec!(5))).await; |
|
|
taker.take_order(received.clone(), Usd::new(dec!(5))).await; |
|
|
let (_, _) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await; |
|
|
let (_, _) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await.unwrap(); |
|
|
|
|
|
|
|
|
maker.mocks.mock_oracle_annoucement().await; |
|
|
maker.mocks.mock_oracle_annoucement().await; |
|
|
taker.mocks.mock_oracle_annoucement().await; |
|
|
taker.mocks.mock_oracle_annoucement().await; |
|
@ -79,7 +83,7 @@ async fn taker_takes_order_and_maker_accepts_and_contract_setup() { |
|
|
|
|
|
|
|
|
maker.accept_take_request(received.clone()).await; |
|
|
maker.accept_take_request(received.clone()).await; |
|
|
|
|
|
|
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await; |
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await.unwrap(); |
|
|
// TODO: More elaborate Cfd assertions
|
|
|
// TODO: More elaborate Cfd assertions
|
|
|
assert_eq!(taker_cfd.order.id, received.id); |
|
|
assert_eq!(taker_cfd.order.id, received.id); |
|
|
assert_eq!(maker_cfd.order.id, received.id); |
|
|
assert_eq!(maker_cfd.order.id, received.id); |
|
@ -89,7 +93,7 @@ async fn taker_takes_order_and_maker_accepts_and_contract_setup() { |
|
|
maker.mocks.mock_wallet_sign_and_broadcast().await; |
|
|
maker.mocks.mock_wallet_sign_and_broadcast().await; |
|
|
taker.mocks.mock_wallet_sign_and_broadcast().await; |
|
|
taker.mocks.mock_wallet_sign_and_broadcast().await; |
|
|
|
|
|
|
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await; |
|
|
let (taker_cfd, maker_cfd) = next_cfd(taker.cfd_feed(), maker.cfd_feed()).await.unwrap(); |
|
|
// TODO: More elaborate Cfd assertions
|
|
|
// TODO: More elaborate Cfd assertions
|
|
|
assert_eq!(taker_cfd.order.id, received.id); |
|
|
assert_eq!(taker_cfd.order.id, received.id); |
|
|
assert_eq!(maker_cfd.order.id, received.id); |
|
|
assert_eq!(maker_cfd.order.id, received.id); |
|
|