tgbot 0.47.0

A Telegram Bot library
Documentation
#![allow(missing_docs)]

use tgbot::types::*;

mod cx;

use cx::Cx;

#[tokio::test]
async fn execute() {
    let mut cx = Cx::new().await;
    cx.execute_batch([
        ("send-location-base", SendLocation::new(1, 2.0, 3.0), |x| {
            assert_eq!(x.id, 1);
            if let MessageData::Location(data) = x.data {
                assert_eq!(data.latitude, 2.0);
                assert_eq!(data.longitude, 3.0);
                assert!(data.horizontal_accuracy.is_none());
                assert!(data.live_period.is_none());
                assert!(data.heading.is_none());
                assert!(data.proximity_alert_radius.is_none());
            } else {
                panic!("Got an unexpected message data: {:?}", x.data);
            }
        }),
        (
            "send-location-all",
            SendLocation::new(1, 2.0, 3.0)
                .with_allow_paid_broadcast(true)
                .with_business_connection_id("id")
                .with_callback_query_id("cqid")
                .with_direct_messages_topic_id(1)
                .with_disable_notification(true)
                .with_heading(120)
                .with_horizontal_accuracy(1.5)
                .with_live_period(100)
                .with_message_effect_id("effect-id")
                .with_message_thread_id(1)
                .with_protect_content(true)
                .with_proximity_alert_radius(100)
                .with_receiver_user_id(999)
                .with_reply_markup(ForceReply::new(true))
                .with_reply_parameters(ReplyParameters::new(1))
                .with_suggested_post_parameters(SuggestedPostParameters::default()),
            |x| {
                assert_eq!(x.id, 1);
                if let MessageData::Location(data) = x.data {
                    assert_eq!(data.latitude, 2.0);
                    assert_eq!(data.longitude, 3.0);
                    assert_eq!(data.horizontal_accuracy.unwrap(), 1.5);
                    assert_eq!(data.live_period.unwrap(), 100);
                    assert_eq!(data.heading.unwrap(), 120);
                    assert_eq!(data.proximity_alert_radius.unwrap(), 100);
                } else {
                    panic!("Got an unexpected message data: {:?}", x.data);
                }
            },
        ),
    ])
    .await;
}