use crate::protocol::art_request::{ArtRequest, ArtRequestParams, ConnInfo, ContentIdEntry};
#[test]
fn serialize_get_content_list() {
let req = ArtRequest::new(
"get_content_list",
ArtRequestParams::GetContentList { category: None },
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["request"], "get_content_list");
assert!(parsed["id"].is_string());
assert!(parsed["request_id"].is_string());
}
#[test]
fn serialize_get_content_list_with_category() {
let req = ArtRequest::new(
"get_content_list",
ArtRequestParams::GetContentList {
category: Some("MY-C0002".to_string()),
},
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["category"], "MY-C0002");
}
#[test]
fn serialize_select_image() {
let req = ArtRequest::new(
"select_image",
ArtRequestParams::SelectImage {
content_id: "SAM-F0206".to_string(),
category_id: None,
show: true,
},
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["request"], "select_image");
assert_eq!(parsed["content_id"], "SAM-F0206");
assert_eq!(parsed["show"], true);
}
#[test]
fn serialize_delete_image_list() {
let req = ArtRequest::new(
"delete_image_list",
ArtRequestParams::DeleteImageList {
content_id_list: vec![
ContentIdEntry {
content_id: "MY-F0020".to_string(),
},
ContentIdEntry {
content_id: "MY-F0021".to_string(),
},
],
},
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["content_id_list"][0]["content_id"], "MY-F0020");
assert_eq!(parsed["content_id_list"][1]["content_id"], "MY-F0021");
}
#[test]
fn serialize_send_image() {
let req = ArtRequest::new(
"send_image",
ArtRequestParams::SendImage {
file_type: "JPEG".to_string(),
image_date: "2024:01:15 10:30:00".to_string(),
matte_id: "none".to_string(),
portrait_matte_id: "none".to_string(),
file_size: 12345,
conn_info: ConnInfo::with_id("test-uuid".to_string()),
},
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["request"], "send_image");
assert_eq!(parsed["file_type"], "JPEG");
assert_eq!(parsed["file_size"], 12345);
assert_eq!(parsed["conn_info"]["d2d_mode"], "socket");
}
#[test]
fn serialize_change_matte() {
let req = ArtRequest::new(
"change_matte",
ArtRequestParams::ChangeMatte {
content_id: "MY-F0001".to_string(),
matte_id: "shadowbox_polar".to_string(),
portrait_matte_id: None,
},
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["matte_id"], "shadowbox_polar");
assert!(parsed.get("portrait_matte_id").is_none());
}
#[test]
fn serialize_set_brightness() {
let req = ArtRequest::new(
"set_brightness",
ArtRequestParams::SetValue {
value: "7".to_string(),
},
);
let json = req.to_json().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["request"], "set_brightness");
assert_eq!(parsed["value"], "7");
}