add tests for Protobuf

This commit is contained in:
gengteng
2023-08-04 22:02:02 +08:00
parent 37c1f42888
commit 8e8af0e0b0
3 changed files with 150 additions and 53 deletions

View File

@@ -11,3 +11,27 @@ impl<T: Validate> HasValidate for Protobuf<T> {
&self.0
}
}
#[cfg(test)]
mod tests {
use crate::tests::{ValidTest, ValidTestParameter};
use axum::http::StatusCode;
use axum_extra::protobuf::Protobuf;
use reqwest::RequestBuilder;
impl<T: ValidTestParameter + prost::Message> ValidTest for Protobuf<T> {
const ERROR_STATUS_CODE: StatusCode = StatusCode::UNPROCESSABLE_ENTITY;
fn set_valid_request(builder: RequestBuilder) -> RequestBuilder {
builder.body(T::valid().encode_to_vec())
}
fn set_error_request(builder: RequestBuilder) -> RequestBuilder {
builder.body("invalid protobuf")
}
fn set_invalid_request(builder: RequestBuilder) -> RequestBuilder {
builder.body(T::invalid().encode_to_vec())
}
}
}