use mcprs::agent::{AgentRegistry, DummyAgent, MCPMessage};
use mcprs::client::send_mcp_request;
use mcprs::server::run_http_server;
use serde_json::json;
use std::net::SocketAddr;
use tokio::task;
#[tokio::test]
async fn test_dummy_integration() {
let mut registry = AgentRegistry::new();
registry.register_agent(Box::new(DummyAgent {
api_key: "some-dummy-key".to_string(),
}));
let addr: SocketAddr = "127.0.0.1:4000".parse().unwrap();
let server_task = task::spawn(run_http_server(registry, addr));
tokio::time::sleep(tokio::time::Duration::from_millis(300)).await;
let msg = MCPMessage::new("dummy:test_integration", json!({"test": "value"}));
let resp = send_mcp_request("http://127.0.0.1:4000/mcp", &msg)
.await
.expect("Falha no envio da requisição MCP");
assert_eq!(resp.command, "dummy_response");
assert_eq!(resp.payload, json!({"test": "value"}));
server_task.abort();
}