use std::str::from_utf8;
use socket_server_mocker::Instruction::{ReceiveMessage, SendMessage, StopExchange};
use socket_server_mocker::ServerMocker;
#[test]
fn http_get() {
let server = ServerMocker::tcp().unwrap();
server.add_mock_instructions(vec![
ReceiveMessage,
SendMessage(b"HTTP/1.1 200 OK\r\nServer: socket-server-mocker-fake-http\r\nContent-Length: 12\r\nConnection: close\r\nContent-Type: text/plain\r\n\r\nHello, world".to_vec()),
StopExchange,
]).unwrap();
let client = reqwest::blocking::Client::new();
let response = client
.get(format!("http://localhost:{}/", server.port()))
.send()
.unwrap();
assert!(response.status().is_success());
assert_eq!(response.text().unwrap(), "Hello, world");
assert_eq!(
format!(
"GET / HTTP/1.1\r\naccept: */*\r\nhost: localhost:{}\r\n\r\n",
server.port()
),
from_utf8(&server.pop_received_message().unwrap()).unwrap()
);
assert!(server.pop_server_error().is_none());
}