@ -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 ) ;