diff --git a/src/handler.rs b/src/handler.rs index ce3d1dd..da5b1a3 100644 --- a/src/handler.rs +++ b/src/handler.rs @@ -51,56 +51,55 @@ where } mod tests { - use crate::{Error, HTTPResult}; - use http::{HeaderValue, Request, Response, StatusCode}; - use hyper::Body; - - use super::Params; - - // this method adds a header: - // wakka: wakka wakka - // to the request. that's it! - #[allow(dead_code)] - async fn one( - mut req: Request, - _response: Option>, - _params: Params, - ) -> HTTPResult { - let headers = req.headers_mut(); - headers.insert("wakka", HeaderValue::from_str("wakka wakka").unwrap()); - Ok((req, None)) - } - - // this method returns an OK status when the wakka header exists. - #[allow(dead_code)] - async fn two( - req: Request, - mut response: Option>, - _params: Params, - ) -> HTTPResult { - if let Some(header) = req.headers().get("wakka") { - if header != "wakka wakka" { - return Err(Error::new("invalid header value")); - } - - if response.is_some() { - return Ok((req, response)); - } else { - let resp = Response::builder() - .status(StatusCode::OK) - .body(Body::default())?; - response.replace(resp); - - return Ok((req, response)); - } - } - - Err(Error::default()) - } // orchestration!!!! #[tokio::test] async fn test_handler_basic() { + use crate::{Error, HTTPResult}; + use http::{HeaderValue, Request, Response, StatusCode}; + use hyper::Body; + + use super::Params; + + // this method adds a header: + // wakka: wakka wakka + // to the request. that's it! + async fn one( + mut req: Request, + _response: Option>, + _params: Params, + ) -> HTTPResult { + let headers = req.headers_mut(); + headers.insert("wakka", HeaderValue::from_str("wakka wakka").unwrap()); + Ok((req, None)) + } + + // this method returns an OK status when the wakka header exists. + async fn two( + req: Request, + mut response: Option>, + _params: Params, + ) -> HTTPResult { + if let Some(header) = req.headers().get("wakka") { + if header != "wakka wakka" { + return Err(Error::new("invalid header value")); + } + + if response.is_some() { + return Ok((req, response)); + } else { + let resp = Response::builder() + .status(StatusCode::OK) + .body(Body::default())?; + response.replace(resp); + + return Ok((req, response)); + } + } + + Err(Error::default()) + } + // single stage handler that never yields a response let bh = super::Handler::new(|req, resp, params| Box::pin(one(req, resp, params)), None); let req = Request::default();