Added support for animated emoji (#913)
* Added support for animated emoji This was such a useful feature Discord, I'm glad you added this instead of fixing bugs. * Fix bugs in emote parser * Added unit tests for emotes
This commit is contained in:
44
test/Discord.Net.Tests/Tests.Emotes.cs
Normal file
44
test/Discord.Net.Tests/Tests.Emotes.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using Xunit;
|
||||
|
||||
namespace Discord
|
||||
{
|
||||
public class EmoteTests
|
||||
{
|
||||
[Fact]
|
||||
public void Test_Emote_Parse()
|
||||
{
|
||||
Assert.True(Emote.TryParse("<:typingstatus:394207658351263745>", out Emote emote));
|
||||
Assert.NotNull(emote);
|
||||
Assert.Equal("typingstatus", emote.Name);
|
||||
Assert.Equal(394207658351263745UL, emote.Id);
|
||||
Assert.False(emote.Animated);
|
||||
Assert.Equal(DateTimeOffset.FromUnixTimeMilliseconds(1514056829775), emote.CreatedAt);
|
||||
Assert.EndsWith("png", emote.Url);
|
||||
}
|
||||
[Fact]
|
||||
public void Test_Invalid_Emote_Parse()
|
||||
{
|
||||
Assert.False(Emote.TryParse("invalid", out _));
|
||||
Assert.False(Emote.TryParse("<:typingstatus:not_a_number>", out _));
|
||||
Assert.Throws<ArgumentException>(() => Emote.Parse("invalid"));
|
||||
}
|
||||
[Fact]
|
||||
public void Test_Animated_Emote_Parse()
|
||||
{
|
||||
Assert.True(Emote.TryParse("<a:typingstatus:394207658351263745>", out Emote emote));
|
||||
Assert.NotNull(emote);
|
||||
Assert.Equal("typingstatus", emote.Name);
|
||||
Assert.Equal(394207658351263745UL, emote.Id);
|
||||
Assert.True(emote.Animated);
|
||||
Assert.Equal(DateTimeOffset.FromUnixTimeMilliseconds(1514056829775), emote.CreatedAt);
|
||||
Assert.EndsWith("gif", emote.Url);
|
||||
}
|
||||
public void Test_Invalid_Amimated_Emote_Parse()
|
||||
{
|
||||
Assert.False(Emote.TryParse("<x:typingstatus:394207658351263745>", out _));
|
||||
Assert.False(Emote.TryParse("<a:typingstatus>", out _));
|
||||
Assert.False(Emote.TryParse("<a:typingstatus:not_a_number>", out _));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user