// use kxio::net::Error; type TestResult = Result<(), Error>; #[tokio::test] async fn test_get() -> TestResult { //given let mut net = kxio::net::mock(); let client = net.client(); let url = "https://www.example.com"; let request = client.get(url).build().expect("build request"); let my_response = net .response() .status(200) .body("Get OK") .expect("request body"); net.on(request).respond(my_response.into()); //when let response = net.send(client.get(url)).await?; //then assert_eq!(response.status(), http::StatusCode::OK); assert_eq!(response.bytes().await.expect("response body"), "Get OK"); Ok(()) } #[tokio::test] async fn test_post() -> TestResult { //given let mut net = kxio::net::mock(); let client = net.client(); let url = "https://www.example.com"; let request = client.post(url).build().expect("build request"); let my_response = net .response() .status(200) .body("Post OK") .expect("request body"); net.on(request).respond(my_response.into()); //when let response = net.send(client.post(url)).await?; //then assert_eq!(response.status(), http::StatusCode::OK); assert_eq!(response.bytes().await.expect("response body"), "Post OK"); Ok(()) } #[tokio::test] #[should_panic] async fn test_unused_post() { //given let mut net = kxio::net::mock(); let client = net.client(); let url = "https://www.example.com"; let request = client.post(url).build().expect("build request"); let my_response = net .response() .status(200) .body("Post OK") .expect("request body"); net.on(request).respond(my_response.into()); //when // don't send the planned request // let _response = net.send(client.post(url)).await.expect("send"); //then // Drop implementation for net should panic }