use nautilus_core::UUID4;
use rstest::fixture;
use super::{
AccountId, ClientId, ClientOrderId, ComponentId, ExecAlgorithmId, InstrumentId, OrderListId,
PositionId, StrategyId, Symbol, TradeId, TraderId, Venue, VenueOrderId,
};
use crate::stubs::TestDefault;
impl TestDefault for AccountId {
fn test_default() -> Self {
Self::from("SIM-001")
}
}
impl TestDefault for ClientId {
fn test_default() -> Self {
Self::from("SIM")
}
}
impl TestDefault for ClientOrderId {
fn test_default() -> Self {
Self::from("O-19700101-000000-001-001-1")
}
}
impl TestDefault for PositionId {
fn test_default() -> Self {
Self::from("P-001")
}
}
impl TestDefault for StrategyId {
fn test_default() -> Self {
Self::from("S-001")
}
}
impl TestDefault for TradeId {
fn test_default() -> Self {
Self::from("1")
}
}
impl TestDefault for TraderId {
fn test_default() -> Self {
Self::default()
}
}
impl TestDefault for Symbol {
fn test_default() -> Self {
Self::from("AUD/USD")
}
}
impl TestDefault for Venue {
fn test_default() -> Self {
Self::from("SIM")
}
}
impl TestDefault for VenueOrderId {
fn test_default() -> Self {
Self::from("001")
}
}
impl TestDefault for InstrumentId {
fn test_default() -> Self {
Self::new(Symbol::test_default(), Venue::test_default())
}
}
#[fixture]
pub fn trader_id() -> TraderId {
TraderId::test_default()
}
#[fixture]
pub fn strategy_id_ema_cross() -> StrategyId {
StrategyId::new("EMACross-001")
}
#[fixture]
pub fn uuid4() -> UUID4 {
UUID4::from("16578139-a945-4b65-b46c-bc131a15d8e7")
}
#[fixture]
pub fn account_id() -> AccountId {
AccountId::test_default()
}
#[fixture]
pub fn client_order_id() -> ClientOrderId {
ClientOrderId::test_default()
}
#[fixture]
pub fn venue_order_id() -> VenueOrderId {
VenueOrderId::test_default()
}
#[fixture]
pub fn position_id() -> PositionId {
PositionId::test_default()
}
#[fixture]
pub fn instrument_id_btc_usdt() -> InstrumentId {
InstrumentId::new(Symbol::new("BTCUSDT"), Venue::new("COINBASE"))
}
#[fixture]
pub fn instrument_id_aud_usd() -> InstrumentId {
InstrumentId::new(Symbol::new("AUD/USD"), Venue::new("SIM"))
}
#[fixture]
pub fn instrument_id_aud_usd_sim() -> InstrumentId {
InstrumentId::new(Symbol::new("AUD/USD"), Venue::new("SIM"))
}
#[fixture]
pub fn trade_id() -> TradeId {
TradeId::new("1234567890")
}
#[fixture]
pub fn symbol_eth_perp() -> Symbol {
Symbol::new("ETH-PERP")
}
#[fixture]
pub fn symbol_aud_usd() -> Symbol {
Symbol::new("AUD/USD")
}
#[fixture]
pub fn venue_binance() -> Venue {
Venue::new("BINANCE")
}
#[fixture]
pub fn venue_sim() -> Venue {
Venue::new("SIM")
}
#[fixture]
pub fn client_id_binance() -> ClientId {
ClientId::new("BINANCE")
}
#[fixture]
pub fn client_id_dydx() -> ClientId {
ClientId::new("DYDX")
}
#[fixture]
pub fn position_id_test() -> PositionId {
PositionId::new("P-123456789")
}
#[fixture]
pub fn order_list_id_test() -> OrderListId {
OrderListId::new("001")
}
#[fixture]
pub fn instrument_id_eth_usdt_binance() -> InstrumentId {
InstrumentId::new(Symbol::new("ETHUSDT"), Venue::new("BINANCE"))
}
#[fixture]
pub fn account_ib() -> AccountId {
AccountId::new("IB-1234567890")
}
#[fixture]
pub fn component_risk_engine() -> ComponentId {
ComponentId::new("RiskEngine")
}
#[fixture]
pub fn exec_algorithm_id() -> ExecAlgorithmId {
ExecAlgorithmId::new("001")
}