#[cfg(test)]
mod tests {
use aex::http::protocol::version::HttpVersion;
#[test]
fn test_http_version_as_str() {
assert_eq!(HttpVersion::Http10.as_str(), "HTTP/1.0");
assert_eq!(HttpVersion::Http11.as_str(), "HTTP/1.1");
assert_eq!(HttpVersion::Http20.as_str(), "HTTP/2.0");
}
#[test]
fn test_http_version_from_str() {
assert_eq!(HttpVersion::from_str("HTTP/1.0"), Some(HttpVersion::Http10));
assert_eq!(HttpVersion::from_str("HTTP/1.1"), Some(HttpVersion::Http11));
assert_eq!(HttpVersion::from_str("HTTP/2.0"), Some(HttpVersion::Http20));
assert_eq!(HttpVersion::from_str("HTTP/2"), Some(HttpVersion::Http20));
assert_eq!(HttpVersion::from_str("http/1.1"), Some(HttpVersion::Http11));
assert_eq!(HttpVersion::from_str("Http/2.0"), Some(HttpVersion::Http20));
assert_eq!(HttpVersion::from_str("HTTP/3.0"), None);
assert_eq!(HttpVersion::from_str("INVALID"), None);
assert_eq!(HttpVersion::from_str(""), None);
}
#[test]
fn test_http_version_display() {
assert_eq!(format!("{}", HttpVersion::Http10), "HTTP/1.0");
assert_eq!(format!("{}", HttpVersion::Http11), "HTTP/1.1");
assert_eq!(format!("{}", HttpVersion::Http20), "HTTP/2.0");
}
#[test]
fn test_derived_traits() {
let version = HttpVersion::Http11;
let cloned = version.clone();
assert_eq!(version, cloned);
let debug_str = format!("{:?}", HttpVersion::Http11);
assert_eq!(debug_str, "Http11");
assert!(HttpVersion::Http11 == HttpVersion::Http11);
assert!(HttpVersion::Http11 != HttpVersion::Http10);
}
}