add tests for msgpack and yaml

This commit is contained in:
gengteng
2023-08-04 22:45:34 +08:00
parent a7c9976b13
commit 82dc642c16
5 changed files with 190 additions and 20 deletions

View File

@@ -18,3 +18,65 @@ impl<T: Validate> HasValidate for MsgPackRaw<T> {
&self.0
}
}
#[cfg(test)]
mod tests {
use crate::tests::{ValidTest, ValidTestParameter};
use axum::http::StatusCode;
use axum_msgpack::{MsgPack, MsgPackRaw};
use reqwest::RequestBuilder;
impl<T: ValidTestParameter> ValidTest for MsgPack<T> {
const ERROR_STATUS_CODE: StatusCode = StatusCode::BAD_REQUEST;
fn set_valid_request(builder: RequestBuilder) -> RequestBuilder {
builder
.header(reqwest::header::CONTENT_TYPE, "application/msgpack")
.body(
rmp_serde::to_vec_named(T::valid())
.expect("Failed to serialize parameters to msgpack"),
)
}
fn set_error_request(builder: RequestBuilder) -> RequestBuilder {
// `Content-Type` not set, `MsgPack` should return `415 Unsupported Media Type`
builder
}
fn set_invalid_request(builder: RequestBuilder) -> RequestBuilder {
builder
.header(reqwest::header::CONTENT_TYPE, "application/msgpack")
.body(
rmp_serde::to_vec_named(T::invalid())
.expect("Failed to serialize parameters to msgpack"),
)
}
}
impl<T: ValidTestParameter> ValidTest for MsgPackRaw<T> {
const ERROR_STATUS_CODE: StatusCode = StatusCode::BAD_REQUEST;
fn set_valid_request(builder: RequestBuilder) -> RequestBuilder {
builder
.header(reqwest::header::CONTENT_TYPE, "application/msgpack")
.body(
rmp_serde::to_vec(T::valid())
.expect("Failed to serialize parameters to msgpack"),
)
}
fn set_error_request(builder: RequestBuilder) -> RequestBuilder {
// `Content-Type` not set, `MsgPack` should return `415 Unsupported Media Type`
builder
}
fn set_invalid_request(builder: RequestBuilder) -> RequestBuilder {
builder
.header(reqwest::header::CONTENT_TYPE, "application/msgpack")
.body(
rmp_serde::to_vec(T::invalid())
.expect("Failed to serialize parameters to msgpack"),
)
}
}
}