use telexide::model::{Chat, Message, MessageContent, User};
#[test]
fn decode_user() -> serde_json::Result<()> {
let t = r#"{
"id": 456,
"is_bot": true,
"first_name": "x",
"last_name": null
}"#;
let u: User = serde_json::from_str(t)?;
assert_eq!(u.id, 456);
assert_eq!(u.last_name, None);
assert_eq!(u.username, None);
Ok(())
}
#[test]
fn decode_message() -> serde_json::Result<()> {
let t = r#"{
"message_id": 16373892,
"date": 1585772722,
"chat": {
"id": 538733,
"type": "private",
"first_name": "test"
},
"document": {
"file_id": "test-file",
"file_unique_id": "testing1"
},
"caption": "just testing"
}"#;
let m: Message = serde_json::from_str(t)?;
if let MessageContent::Document { caption, .. } = m.content.clone() {
assert_eq!(caption, Some("just testing".to_owned()))
} else {
panic!("no document")
}
if let Chat::Private(c) = m.chat.clone() {
assert_eq!(c.first_name, Some("test".to_owned()))
} else {
panic!("no private chat")
}
Ok(())
}