Skip to content

Commit

Permalink
adding adl test
Browse files Browse the repository at this point in the history
  • Loading branch information
faytey committed Nov 1, 2023
1 parent d543d50 commit d826c7a
Showing 1 changed file with 35 additions and 7 deletions.
42 changes: 35 additions & 7 deletions tests/adl/test_adl_utils.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ use snforge_std::{
};
use satoru::adl::adl_utils;
use satoru::utils::i128::{i128, i128_new};
use satoru::market::market::{Market};
use satoru::price::price::{Price, PriceTrait};
use satoru::oracle::oracle::{IOracleDispatcher, IOracleDispatcherTrait};


#[test]
Expand Down Expand Up @@ -248,15 +251,40 @@ fn given_normal_conditions_when_update_adl_state_then_works() {
let (caller_address, role_store, data_store, event_emitter, oracle) = setup_oracle_and_store();
// TODO
// For testing "get_enabled_market", "get_market_prices" and "is_pnl_factor_exceeded_direct" should be implmented
let market = 'market'.try_into().unwrap();
let is_long = true;
let block_value = 9_u64;
adl_utils::set_latest_adl_block(data_store, market, is_long, block_value);
let is_long = false;
let market_token_address = contract_address_const::<'market_token'>();
let index_token_address = contract_address_const::<'index_token'>();
let long_token_address = contract_address_const::<'long_token'>();
let short_token_address = contract_address_const::<'short_token'>();
let mut market = Market {
market_token: market_token_address,
index_token: index_token_address,
long_token: long_token_address,
short_token: short_token_address,
};

let block_numbers = array![10_u64, 9_u64];
adl_utils::update_adl_state(
data_store, event_emitter, oracle, market, is_long, block_numbers.span()
start_prank(role_store.contract_address, caller_address);
role_store.grant_role(caller_address, role::MARKET_KEEPER);

let price = Price {
min: 1,
max: 200
};

stop_prank(role_store.contract_address);
data_store.set_market(market_token_address, 0, market);

oracle.set_primary_price(index_token_address, price);
oracle.set_primary_price(long_token_address, price);
oracle.set_primary_price(short_token_address, price);

let block_value = 1_u64;
let set_block = adl_utils::set_latest_adl_block(data_store, market_token_address, is_long, block_value);
let block_numbers = array![1_u64, 2_u64];
let updated = adl_utils::update_adl_state(
data_store, event_emitter, oracle, market_token_address, is_long, block_numbers.span()
);

teardown(data_store.contract_address);
// assert(adl_utils::get_latest_adl_block(data_store, market_token_address, is_long) == set_block, "No set block");
}

0 comments on commit d826c7a

Please sign in to comment.