rust_integration_services/http/
mod.rs

1#[cfg(feature = "http")]
2pub mod http_request;
3#[cfg(feature = "http")]
4pub mod http_response;
5#[cfg(feature = "http")]
6pub mod http_receiver;
7#[cfg(feature = "http")]
8pub mod http_sender;
9
10#[cfg(feature = "http")]
11#[cfg(test)]
12mod test {
13    use crate::http::{http_receiver::HttpReceiver, http_request::HttpRequest, http_response::HttpResponse, http_sender::HttpSender};
14    use tokio::time::Duration;
15
16    #[tokio::test(start_paused = true)]
17    async fn http_receiver_sender() {
18        tokio::spawn(async move {
19            let result = HttpReceiver::new("127.0.0.1:8080")
20            .route("GET", "/", |_uuid, _request| async {
21                HttpResponse::ok().body_string("Text")
22            })
23            .receive()
24            .await;
25            assert!(result.is_ok());
26        });
27        
28        tokio::time::advance(Duration::from_millis(100)).await;
29        let request = HttpRequest::get();
30        let response = HttpSender::new("http://127.0.0.1:8080").send(request).await.unwrap();
31        assert_eq!(response.status_code, 200);
32        assert_eq!(response.body_to_string(), "Text");
33    }
34}