rusty_oms/exchanges/
test.rs

1//! Test exchange implementation for development and testing
2//!
3//! This module provides a mock exchange that always succeeds,
4//! useful for testing order management functionality.
5
6use crate::execution_engine::Exchange;
7use async_trait::async_trait;
8use rusty_model::trading_order::Order;
9
10/// Test exchange implementation that always succeeds
11pub struct TestExchange;
12// use smartstring::alias::String; // Using std::string::String instead
13
14impl TestExchange {
15    /// Create a new test exchange instance
16    #[must_use]
17    pub const fn new() -> Self {
18        Self
19    }
20}
21
22impl Default for TestExchange {
23    fn default() -> Self {
24        Self::new()
25    }
26}
27
28#[async_trait]
29impl Exchange for TestExchange {
30    async fn send_order(&self, _order: Order) -> crate::Result<()> {
31        Ok(())
32    }
33
34    async fn cancel_order(&self, _order_id: std::string::String) -> crate::Result<()> {
35        Ok(())
36    }
37
38    async fn get_order_status(
39        &self,
40        _order_id: std::string::String,
41    ) -> crate::Result<std::string::String> {
42        Ok("APPROVED".into())
43    }
44}