test(status): increasing test coverage of status module
This commit is contained in:
		| @@ -349,7 +349,7 @@ impl StatusCode { | ||||
|             StatusCode::NotExtended => 510, | ||||
|             StatusCode::NetworkAuthenticationRequired => 511, | ||||
|             StatusCode::Unregistered(n) => n, | ||||
|         }  | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Get the standardised `reason-phrase` for this status code. | ||||
| @@ -638,3 +638,90 @@ impl StatusClass { | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::*; | ||||
|     use super::StatusCode::*; | ||||
|  | ||||
|     // Check that the following entities are properly inter-connected: | ||||
|     //   - numerical code | ||||
|     //   - status code | ||||
|     //   - default code (for the given status code) | ||||
|     //   - canonical reason | ||||
|     fn validate(num: u16, status_code: StatusCode, default_code: StatusCode, reason: Option<&str>) { | ||||
|         assert_eq!(StatusCode::from_u16(num), status_code); | ||||
|         assert_eq!(status_code.to_u16(), num); | ||||
|         assert_eq!(status_code.class().default_code(), default_code); | ||||
|         assert_eq!(status_code.canonical_reason(), reason); | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     fn test_status_code() { | ||||
|         validate(99, Unregistered(99), Ok, None); | ||||
|  | ||||
|         validate(100, Continue, Continue, Some("Continue")); | ||||
|         validate(101, SwitchingProtocols, Continue, Some("Switching Protocols")); | ||||
|         validate(102, Processing, Continue, Some("Processing")); | ||||
|  | ||||
|         validate(200, Ok, Ok, Some("OK")); | ||||
|         validate(201, Created, Ok, Some("Created")); | ||||
|         validate(202, Accepted, Ok, Some("Accepted")); | ||||
|         validate(203, NonAuthoritativeInformation, Ok, Some("Non-Authoritative Information")); | ||||
|         validate(204, NoContent, Ok, Some("No Content")); | ||||
|         validate(205, ResetContent, Ok, Some("Reset Content")); | ||||
|         validate(206, PartialContent, Ok, Some("Partial Content")); | ||||
|         validate(207, MultiStatus, Ok, Some("Multi-Status")); | ||||
|         validate(208, AlreadyReported, Ok, Some("Already Reported")); | ||||
|         validate(226, ImUsed, Ok, Some("IM Used")); | ||||
|  | ||||
|         validate(300, MultipleChoices, MultipleChoices, Some("Multiple Choices")); | ||||
|         validate(301, MovedPermanently, MultipleChoices, Some("Moved Permanently")); | ||||
|         validate(302, Found, MultipleChoices, Some("Found")); | ||||
|         validate(303, SeeOther, MultipleChoices, Some("See Other")); | ||||
|         validate(304, NotModified, MultipleChoices, Some("Not Modified")); | ||||
|         validate(305, UseProxy, MultipleChoices, Some("Use Proxy")); | ||||
|         validate(307, TemporaryRedirect, MultipleChoices, Some("Temporary Redirect")); | ||||
|         validate(308, PermanentRedirect, MultipleChoices, Some("Permanent Redirect")); | ||||
|  | ||||
|         validate(400, BadRequest, BadRequest, Some("Bad Request")); | ||||
|         validate(401, Unauthorized, BadRequest, Some("Unauthorized")); | ||||
|         validate(402, PaymentRequired, BadRequest, Some("Payment Required")); | ||||
|         validate(403, Forbidden, BadRequest, Some("Forbidden")); | ||||
|         validate(404, NotFound, BadRequest, Some("Not Found")); | ||||
|         validate(405, MethodNotAllowed, BadRequest, Some("Method Not Allowed")); | ||||
|         validate(406, NotAcceptable, BadRequest, Some("Not Acceptable")); | ||||
|         validate(407, ProxyAuthenticationRequired, BadRequest, Some("Proxy Authentication Required")); | ||||
|         validate(408, RequestTimeout, BadRequest, Some("Request Timeout")); | ||||
|         validate(409, Conflict, BadRequest, Some("Conflict")); | ||||
|         validate(410, Gone, BadRequest, Some("Gone")); | ||||
|         validate(411, LengthRequired, BadRequest, Some("Length Required")); | ||||
|         validate(412, PreconditionFailed, BadRequest, Some("Precondition Failed")); | ||||
|         validate(413, PayloadTooLarge, BadRequest, Some("Payload Too Large")); | ||||
|         validate(414, UriTooLong, BadRequest, Some("URI Too Long")); | ||||
|         validate(415, UnsupportedMediaType, BadRequest, Some("Unsupported Media Type")); | ||||
|         validate(416, RangeNotSatisfiable, BadRequest, Some("Range Not Satisfiable")); | ||||
|         validate(417, ExpectationFailed, BadRequest, Some("Expectation Failed")); | ||||
|         validate(418, ImATeapot, BadRequest, Some("I'm a teapot")); | ||||
|         validate(422, UnprocessableEntity, BadRequest, Some("Unprocessable Entity")); | ||||
|         validate(423, Locked, BadRequest, Some("Locked")); | ||||
|         validate(424, FailedDependency, BadRequest, Some("Failed Dependency")); | ||||
|         validate(426, UpgradeRequired, BadRequest, Some("Upgrade Required")); | ||||
|         validate(428, PreconditionRequired, BadRequest, Some("Precondition Required")); | ||||
|         validate(429, TooManyRequests, BadRequest, Some("Too Many Requests")); | ||||
|         validate(431, RequestHeaderFieldsTooLarge, BadRequest, Some("Request Header Fields Too Large")); | ||||
|  | ||||
|         validate(500, InternalServerError, InternalServerError, Some("Internal Server Error")); | ||||
|         validate(501, NotImplemented, InternalServerError, Some("Not Implemented")); | ||||
|         validate(502, BadGateway, InternalServerError, Some("Bad Gateway")); | ||||
|         validate(503, ServiceUnavailable, InternalServerError, Some("Service Unavailable")); | ||||
|         validate(504, GatewayTimeout, InternalServerError, Some("Gateway Timeout")); | ||||
|         validate(505, HttpVersionNotSupported, InternalServerError, Some("HTTP Version Not Supported")); | ||||
|         validate(506, VariantAlsoNegotiates, InternalServerError, Some("Variant Also Negotiates")); | ||||
|         validate(507, InsufficientStorage, InternalServerError, Some("Insufficient Storage")); | ||||
|         validate(508, LoopDetected, InternalServerError, Some("Loop Detected")); | ||||
|         validate(510, NotExtended, InternalServerError, Some("Not Extended")); | ||||
|         validate(511, NetworkAuthenticationRequired, InternalServerError, Some("Network Authentication Required")); | ||||
|  | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user