use turbomcp_proxy::{
prelude::*,
proxy::{BackendConfig, BackendTransport},
};
#[tokio::test]
async fn test_proxy_service_creation() {
}
#[tokio::test]
async fn test_backend_config_validation() {
let backend_config = BackendConfig {
transport: BackendTransport::Stdio {
command: "echo".to_string(),
args: vec!["test".to_string()],
working_dir: None,
},
client_name: "test-client".to_string(),
client_version: "1.0.0".to_string(),
};
assert_eq!(
match &backend_config.transport {
BackendTransport::Stdio { command, .. } => command.as_str(),
_ => "unknown",
},
"echo"
);
}
#[test]
fn test_backend_transport_types() {
let _stdio = BackendTransport::Stdio {
command: "cmd".to_string(),
args: vec![],
working_dir: None,
};
let _http = BackendTransport::Http {
url: "http://localhost:3000".to_string(),
auth_token: None,
};
let _tcp = BackendTransport::Tcp {
host: "localhost".to_string(),
port: 5000,
};
#[cfg(unix)]
let _unix = BackendTransport::Unix {
path: "/tmp/mcp.sock".to_string(),
};
let _ws = BackendTransport::WebSocket {
url: "ws://localhost:3000".to_string(),
};
}
#[tokio::test]
async fn test_id_translator_functionality() {
use turbomcp_protocol::MessageId;
let translator = IdTranslator::new();
let frontend_id = MessageId::String("frontend-123".to_string());
let backend_id = translator.allocate(frontend_id.clone()).unwrap();
assert!(matches!(backend_id, MessageId::Number(1)));
let remapped = translator.get_frontend_id(&backend_id);
assert_eq!(remapped, Some(frontend_id));
}