tii 0.0.6

A Low-Latency Web Server.
Documentation
use crate::mock_stream::MockStream;
use tii::TiiResult;
use tii::{RequestContext, Response, ServerBuilder};

mod mock_stream;

fn rewrite_filter(request: &mut RequestContext) {
  assert_eq!(request.get_query_param("query"), Some("bla"));
  request.set_query(vec![("query".to_string(), "blub".to_string())])
}
fn dummy_route(request: &RequestContext) -> TiiResult<Response> {
  assert_eq!(request.get_query_param("query"), Some("blub"));
  Ok(Response::no_content())
}
#[test]
pub fn tc45() {
  let server = ServerBuilder::default()
    .router(|rt| rt.with_pre_routing_request_filter(rewrite_filter)?.route_get("/*", dummy_route))
    .expect("ERR")
    .build();

  let stream = MockStream::with_str("GET /dummy?query=bla HTTP/1.1\r\n\r\n\r\n");
  let con = stream.to_stream();
  server.handle_connection(con).unwrap();

  let data = stream.copy_written_data_to_string();
  assert_eq!(data, "HTTP/1.1 204 No Content\r\nConnection: Close\r\nContent-Length: 0\r\n\r\n");
}