//! Integration Tests for Trading Agent Service
//!
//! Basic smoke tests to verify the service compiles and starts.

use trading_agent_service::proto::trading_agent::*;

#[test]
fn test_proto_structs_exist() {
    // Verify proto structures compile
    let _request = SelectUniverseRequest {
        criteria: None,
        max_instruments: Some(10),
        force_refresh: false,
    };

    let _response = SelectUniverseResponse {
        instruments: vec![],
        metrics: None,
        timestamp: 0,
        universe_id: String::new(),
    };
}

#[test]
fn test_health_check_request() {
    let _request = HealthCheckRequest {};
    let _response = HealthCheckResponse {
        healthy: true,
        message: "OK".to_string(),
        details: std::collections::HashMap::new(),
    };
}

#[test]
fn test_asset_selection_request() {
    let _request = SelectAssetsRequest {
        universe_id: "test".to_string(),
        criteria: None,
        max_assets: 5,
    };
}

#[test]
fn test_allocation_request() {
    let _request = AllocatePortfolioRequest {
        assets: vec![],
        strategy: None,
        risk_constraints: None,
        total_capital: 100000.0,
    };
}

#[test]
fn test_order_generation_request() {
    let _request = GenerateOrdersRequest {
        allocation_id: "test".to_string(),
        ml_signals: vec![],
        strategy: None,
    };
}

#[test]
fn test_strategy_registration_request() {
    let _request = RegisterStrategyRequest {
        strategy_name: "test_strategy".to_string(),
        strategy_type: 1, // ML_ENSEMBLE
        config: None,
        auto_enable: false,
    };
}
