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 dummy_route(request: &RequestContext) -> TiiResult<Response> {
  assert_eq!(request.get_query_param("query"), Some("12345"));
  let g = request.parse_query_param::<u64, _>("query").expect("parsing_error").expect("present");
  assert_eq!(g, 12345);
  let g = request.parse_query_param_or::<u64, _>("query", 3456).expect("parsing_error");
  assert_eq!(g, 12345);
  let g = request.parse_query_param_or::<u64, _>("jerry", 3456).expect("parsing_error");
  assert_eq!(g, 3456);
  let g = request.parse_query_param_or_else::<u64, _>("jerry", || 3456).expect("parsing_error");
  assert_eq!(g, 3456);
  let g =
    request.parse_query_param_or_else::<u64, _>("query", || unreachable!()).expect("parsing_error");
  assert_eq!(g, 12345);

  Ok(Response::no_content())
}
#[test]
pub fn tc67() {
  let server =
    ServerBuilder::default().router(|rt| rt.route_get("/*", dummy_route)).expect("ERR").build();

  let stream = MockStream::with_str("GET /dummy?query=12345 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");
}