extern crate futures;
extern crate microservice;
use futures::Future;
use microservice::Microservice;
use std::{thread, time};
#[test]
fn hello_success() {
let addr = "127.0.0.1:30080";
let server_cert = "tests/certificate.pfx";
let client_cert = "tests/certificate.der";
thread::spawn(move || {
Microservice::new(addr, server_cert)
.unwrap()
.serve()
.unwrap();
});
let time = time::Duration::from_secs(1);
thread::sleep(time);
let (client, mut rpc) = Microservice::new(addr, server_cert)
.unwrap()
.get_client(client_cert)
.unwrap();
let mut request = client.hello_request();
request.get().set_request("Hello");
rpc.run(request.send().promise.and_then(|message| {
let response = message.get()?.get_response()?;
assert_eq!(response, "olleH");
Ok(())
})).unwrap();
}