apple_search_ads/objects/
api_error_response.rs1use serde::{Deserialize, Serialize};
4
5use super::error_response_body::ErrorResponseBody;
6
7#[derive(Deserialize, Serialize, Debug, Clone)]
9pub struct ApiErrorResponse {
10 pub error: ErrorResponseBody,
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16
17 use std::error;
18
19 #[test]
20 fn test_de() -> Result<(), Box<dyn error::Error>> {
21 let body = serde_json::from_str::<ApiErrorResponse>(
22 r#"{
23 "error": {
24 "errors": [
25 {
26 "messageCode": "<CODE>",
27 "message": "<MESSAGE>",
28 "field": "<FIELD>"
29 }
30 ]
31 }
32 }"#,
33 )?
34 .error;
35
36 assert_eq!(body.errors.len(), 1);
37
38 Ok(())
39 }
40
41 #[test]
42 fn test_v3_de_with_unauthorized() -> Result<(), Box<dyn error::Error>> {
43 let json_content =
44 include_str!("../../tests/v3/response_body_json_files/error_with_unauthorized.json");
45
46 let _: ApiErrorResponse = serde_json::from_str(json_content)?;
47
48 Ok(())
49 }
50}