extern crate zotapi; extern crate mockito; use mockito::{mock, Matcher}; #[test] fn get_channel_stream() { let m = mock("GET", "/api/z/1.0/channel/stream") .match_header("Authorization", Matcher::Regex(r"Basic \w+".into())) .with_status(200) .with_header("content-type", "application/json") .with_body("{}") .create(); let z = zotapi::client(&format!("http://{}", mockito::SERVER_ADDRESS), "testuser", "test1234"); let data = z.channel_stream(); m.assert(); assert_eq!(data.unwrap(), "{}"); } #[test] fn get_network_stream() { let m = mock("GET", "/api/z/1.0/network/stream") .match_header("Authorization", Matcher::Regex(r"Basic \w+".into())) .with_status(200) .with_header("content-type", "application/json") .with_body("{}") .create(); let z = zotapi::client(&format!("http://{}", mockito::SERVER_ADDRESS), "testuser", "test1234"); let data = z.network_stream(); m.assert(); assert_eq!(data.unwrap(), "{}"); } #[test] fn return_error_if_invalid_auth_provided() { let m = mock("GET", "/api/z/1.0/channel/stream") .with_status(401) .with_header("content-type", "text") .with_body("This api requires login") .create(); let z = zotapi::client(&format!("http://{}", mockito::SERVER_ADDRESS), "nouser", "wrongpassword"); let data = z.channel_stream(); m.assert(); assert!(data.is_err()); assert_eq!(format!("{:?}", data), "Err(Unauthorized)"); }