diff options
| -rw-r--r-- | src/model/id.rs | 6 | ||||
| -rw-r--r-- | src/utils/message_builder.rs | 6 | ||||
| -rw-r--r-- | tests/test_formatters.rs | 69 |
3 files changed, 70 insertions, 11 deletions
diff --git a/src/model/id.rs b/src/model/id.rs index 0d337fb..04c15f7 100644 --- a/src/model/id.rs +++ b/src/model/id.rs @@ -203,19 +203,19 @@ impl From<User> for UserId { impl fmt::Display for UserId { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Display::fmt(&self.mention(), f) + fmt::Display::fmt(&self.0, f) } } impl fmt::Display for RoleId { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Display::fmt(&self.mention(), f) + fmt::Display::fmt(&self.0, f) } } impl fmt::Display for ChannelId { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Display::fmt(&self.mention(), f) + fmt::Display::fmt(&self.0, f) } } diff --git a/src/utils/message_builder.rs b/src/utils/message_builder.rs index 5eadd19..a93468e 100644 --- a/src/utils/message_builder.rs +++ b/src/utils/message_builder.rs @@ -65,7 +65,7 @@ impl MessageBuilder { /// [`GuildChannel`]: ../model/struct.GuildChannel.html /// [Display implementation]: ../model/struct.ChannelId.html#method.fmt-1 pub fn channel<C: Into<ChannelId>>(mut self, channel: C) -> Self { - let _ = write!(self.0, "{}", channel.into()); + let _ = write!(self.0, "{}", channel.into().mention()); self } @@ -261,7 +261,7 @@ impl MessageBuilder { /// [`RoleId`]: ../model/struct.RoleId.html /// [Display implementation]: ../model/struct.RoleId.html#method.fmt-1 pub fn role<R: Into<RoleId>>(mut self, role: R) -> Self { - let _ = write!(self.0, "{}", role.into()); + let _ = write!(self.0, "{}", role.into().mention()); self } @@ -278,7 +278,7 @@ impl MessageBuilder { /// [`UserId`]: ../model/struct.UserId.html /// [Display implementation]: ../model/struct.UserId.html#method.fmt-1 pub fn user<U: Into<UserId>>(mut self, user: U) -> Self { - let _ = write!(self.0, "{}", user.into()); + let _ = write!(self.0, "{}", user.into().mention()); self } diff --git a/tests/test_formatters.rs b/tests/test_formatters.rs index 922fb41..91eb0f0 100644 --- a/tests/test_formatters.rs +++ b/tests/test_formatters.rs @@ -1,12 +1,71 @@ extern crate serenity; use serenity::model::*; +use serenity::utils::Colour; #[test] fn test_formatters() { - assert_eq!(format!("{}", ChannelId(1)), "<#1>"); - assert_eq!(format!("{}", EmojiId(2)), "2"); - assert_eq!(format!("{}", GuildId(3)), "3"); - assert_eq!(format!("{}", RoleId(4)), "<@&4>"); - assert_eq!(format!("{}", UserId(5)), "<@5>"); + 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"); +} + +#[test] +fn test_mention() { + let channel = Channel::Guild(GuildChannel { + bitrate: None, + guild_id: GuildId(1), + kind: ChannelType::Text, + id: ChannelId(4), + last_message_id: None, + last_pin_timestamp: None, + name: "a".to_owned(), + permission_overwrites: vec![], + position: 1, + topic: None, + user_limit: None, + }); + let emoji = Emoji { + id: EmojiId(5), + name: "a".to_owned(), + 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_owned(), + permissions: Permissions::empty(), + position: 1, + }; + let user = User { + id: UserId(6), + avatar: None, + bot: false, + discriminator: "4132".to_owned(), + name: "fake".to_owned(), + }; + let member = Member { + deaf: false, + joined_at: "fake".to_owned(), + mute: false, + nick: None, + roles: vec![], + user: 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>"); } |