vkteams_bot/api/chats/
set_title.rs1use crate::api::types::*;
4bot_api_method! {
5 method = "chats/setTitle",
6 request = RequestChatsSetTitle {
7 required {
8 chat_id: ChatId,
9 title: String,
10 },
11 optional {}
12 },
13 response = ResponseChatsSetTitle {},
14}
15
16#[cfg(test)]
17mod tests {
18 use super::*;
19 use crate::api::types::ChatId;
20 use serde_json::json;
21
22 #[test]
23 fn test_request_chats_set_title_serialize() {
24 let req = RequestChatsSetTitle {
25 chat_id: ChatId::from("c1"),
26 title: "title text".to_string(),
27 };
28 let val = serde_json::to_value(&req).unwrap();
29 assert_eq!(val["chatId"], "c1");
30 assert_eq!(val["title"], "title text");
31 }
32
33 #[test]
34 fn test_request_chats_set_title_deserialize() {
35 let val = json!({"chatId": "c2", "title": "desc"});
36 let req: RequestChatsSetTitle = serde_json::from_value(val).unwrap();
37 assert_eq!(req.chat_id.0, "c2");
38 assert_eq!(req.title, "desc");
39 }
40
41 #[test]
42 fn test_request_chats_set_title_empty_title() {
43 let val = json!({"chatId": "c3", "title": ""});
44 let req: RequestChatsSetTitle = serde_json::from_value(val).unwrap();
45 assert_eq!(req.title, "");
46 }
47
48 #[test]
49 fn test_request_chats_set_title_missing_title() {
50 let val = json!({"chatId": "c4"});
51 let res: Result<RequestChatsSetTitle, _> = serde_json::from_value(val);
52 assert!(res.is_err());
53 }
54
55 #[test]
56 fn test_request_chats_set_title_invalid_chat_id() {
57 let val = json!({"chatId": 123, "title": "desc"});
58 let res: Result<RequestChatsSetTitle, _> = serde_json::from_value(val);
59 assert!(res.is_err());
60 }
61
62 #[test]
63 fn test_response_chats_set_title_serialize_deserialize() {
64 let resp = ResponseChatsSetTitle {};
65 let val = serde_json::to_value(&resp).unwrap();
66 let resp2: ResponseChatsSetTitle = serde_json::from_value(val).unwrap();
67 let _ = resp2;
68 }
69}