serenity 0.5.1

A Rust library for the Discord API.
Documentation
extern crate serenity;

#[cfg(feature = "model")]
mod model {
    use serenity::model::id::UserId;
    use serenity::model::user::User;

    fn gen() -> User {
        User {
            id: UserId(210),
            avatar: Some("abc".to_string()),
            bot: true,
            discriminator: 1432,
            name: "test".to_string(),
        }
    }

    #[test]
    fn test_core() {
        let mut user = gen();

        assert!(
            user.avatar_url()
                .unwrap()
                .ends_with("/avatars/210/abc.webp?size=1024",)
        );
        assert!(
            user.static_avatar_url()
                .unwrap()
                .ends_with("/avatars/210/abc.webp?size=1024",)
        );

        user.avatar = Some("a_aaa".to_string());
        assert!(
            user.avatar_url()
                .unwrap()
                .ends_with("/avatars/210/a_aaa.gif?size=1024",)
        );
        assert!(
            user.static_avatar_url()
                .unwrap()
                .ends_with("/avatars/210/a_aaa.webp?size=1024",)
        );

        user.avatar = None;
        assert!(user.avatar_url().is_none());

        assert_eq!(user.tag(), "test#1432");
    }

    #[test]
    fn default_avatars() {
        let mut user = gen();

        user.discriminator = 0;
        assert!(user.default_avatar_url().ends_with("0.png"));
        user.discriminator = 1;
        assert!(user.default_avatar_url().ends_with("1.png"));
        user.discriminator = 2;
        assert!(user.default_avatar_url().ends_with("2.png"));
        user.discriminator = 3;
        assert!(user.default_avatar_url().ends_with("3.png"));
        user.discriminator = 4;
        assert!(user.default_avatar_url().ends_with("4.png"));
    }
}