hans_http/
lib.rs

1mod error;
2mod prelude;
3mod http_request;
4mod http_response;
5
6pub use crate::http_request::*;
7pub use crate::http_response::*;
8pub use crate::error::Error;
9
10#[cfg(test)]
11mod tests {
12    use super::*;
13
14    #[test]
15    fn request_method_to_string() {
16        let request_method = RequestMethod::POST;
17
18        assert_eq!(request_method.to_string(), "POST");
19    }
20    #[test]
21    fn create_http_request_from_builder() {
22        let http_request = HttpRequestBuilder::new()
23            .set_request_method(RequestMethod::POST)
24            .set_url("/users")
25            .add_header(("Content-Type", "application/json"))
26            .set_body("{\"username\": \"Landa\"}")
27            .build()
28            .unwrap()
29            .to_string();
30
31        println!("{}", http_request);
32        assert_eq!(http_request, "POST /users HTTP/1.1\r\nContent-Type: application/json\r\n\r\n{\"username\": \"Landa\"}");
33    }
34    #[test]
35    fn create_http_response_from_builder() {
36        let http_response = HttpResponseBuilder::new()
37            .set_status_code(StatusCode::Ok)
38            .add_header(("Content-Type", "application/json"))
39            .set_body("{\"username\": \"Landa\"}")
40            .build()
41            .unwrap()
42            .to_string();
43
44        println!("{}", http_response);
45        assert_eq!(http_response, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"username\": \"Landa\"}");
46    }
47}