You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Tests.Emotes.cs 1.7 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using Xunit;
  3. namespace Discord
  4. {
  5. public class EmoteTests
  6. {
  7. [Fact]
  8. public void Test_Emote_Parse()
  9. {
  10. Assert.True(Emote.TryParse("<:typingstatus:394207658351263745>", out Emote emote));
  11. Assert.NotNull(emote);
  12. Assert.Equal("typingstatus", emote.Name);
  13. Assert.Equal(394207658351263745UL, emote.Id);
  14. Assert.False(emote.Animated);
  15. Assert.Equal(DateTimeOffset.FromUnixTimeMilliseconds(1514056829775), emote.CreatedAt);
  16. Assert.EndsWith("png", emote.Url);
  17. }
  18. [Fact]
  19. public void Test_Invalid_Emote_Parse()
  20. {
  21. Assert.False(Emote.TryParse("invalid", out _));
  22. Assert.False(Emote.TryParse("<:typingstatus:not_a_number>", out _));
  23. Assert.Throws<ArgumentException>(() => Emote.Parse("invalid"));
  24. }
  25. [Fact]
  26. public void Test_Animated_Emote_Parse()
  27. {
  28. Assert.True(Emote.TryParse("<a:typingstatus:394207658351263745>", out Emote emote));
  29. Assert.NotNull(emote);
  30. Assert.Equal("typingstatus", emote.Name);
  31. Assert.Equal(394207658351263745UL, emote.Id);
  32. Assert.True(emote.Animated);
  33. Assert.Equal(DateTimeOffset.FromUnixTimeMilliseconds(1514056829775), emote.CreatedAt);
  34. Assert.EndsWith("gif", emote.Url);
  35. }
  36. public void Test_Invalid_Amimated_Emote_Parse()
  37. {
  38. Assert.False(Emote.TryParse("<x:typingstatus:394207658351263745>", out _));
  39. Assert.False(Emote.TryParse("<a:typingstatus>", out _));
  40. Assert.False(Emote.TryParse("<a:typingstatus:not_a_number>", out _));
  41. }
  42. }
  43. }