extern crate parking_lot;
extern crate serenity;
use serenity::model::prelude::*;
#[test]
fn test_formatters() {
assert_eq!(ChannelId(1).to_string(), "1");
assert_eq!(EmojiId(2).to_string(), "2");
assert_eq!(GuildId(3).to_string(), "3");
assert_eq!(RoleId(4).to_string(), "4");
assert_eq!(UserId(5).to_string(), "5");
}
#[cfg(feature = "utils")]
#[test]
fn test_mention() {
use parking_lot::RwLock;
use serenity::utils::Colour;
use std::sync::Arc;
let channel = Channel::Guild(Arc::new(RwLock::new(GuildChannel {
bitrate: None,
category_id: None,
guild_id: GuildId(1),
kind: ChannelType::Text,
id: ChannelId(4),
last_message_id: None,
last_pin_timestamp: None,
name: "a".to_string(),
permission_overwrites: vec![],
position: 1,
topic: None,
user_limit: None,
nsfw: false,
})));
let emoji = Emoji {
animated: false,
id: EmojiId(5),
name: "a".to_string(),
managed: true,
require_colons: true,
roles: vec![],
};
let role = Role {
id: RoleId(2),
colour: Colour::rosewater(),
hoist: false,
managed: false,
mentionable: false,
name: "fake role".to_string(),
permissions: Permissions::empty(),
position: 1,
};
let user = User {
id: UserId(6),
avatar: None,
bot: false,
discriminator: 4132,
name: "fake".to_string(),
};
let member = Member {
deaf: false,
guild_id: GuildId(2),
joined_at: None,
mute: false,
nick: None,
roles: vec![],
user: Arc::new(RwLock::new(user.clone())),
};
assert_eq!(ChannelId(1).mention(), "<#1>");
assert_eq!(channel.mention(), "<#4>");
assert_eq!(emoji.mention(), "<:a:5>");
assert_eq!(member.mention(), "<@6>");
assert_eq!(role.mention(), "<@&2>");
assert_eq!(role.id.mention(), "<@&2>");
assert_eq!(user.mention(), "<@6>");
assert_eq!(user.id.mention(), "<@6>");
}