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.Channels.cs 4.9 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using Discord.Rest;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using Xunit;
  5. namespace Discord
  6. {
  7. public partial class Tests
  8. {
  9. internal static async Task Migration_CreateTextChannels(DiscordRestClient client, RestGuild guild)
  10. {
  11. var text1 = await guild.GetDefaultChannelAsync();
  12. var text2 = await guild.CreateTextChannelAsync("text2");
  13. var text3 = await guild.CreateTextChannelAsync("text3");
  14. var text4 = await guild.CreateTextChannelAsync("text4");
  15. var text5 = await guild.CreateTextChannelAsync("text5");
  16. //Modify #general
  17. await text1.ModifyAsync(x =>
  18. {
  19. x.Name = "text1";
  20. x.Position = 1;
  21. x.Topic = "Topic1";
  22. });
  23. await text2.ModifyAsync(x =>
  24. {
  25. x.Position = 2;
  26. });
  27. await text3.ModifyAsync(x =>
  28. {
  29. x.Topic = "Topic2";
  30. });
  31. await text4.ModifyAsync(x =>
  32. {
  33. x.Position = 3;
  34. x.Topic = "Topic2";
  35. });
  36. await text5.ModifyAsync(x =>
  37. {
  38. });
  39. CheckTextChannels(guild, text1, text2, text3, text4, text5);
  40. }
  41. [Fact]
  42. public async Task TestTextChannels()
  43. {
  44. CheckTextChannels(_guild, (await _guild.GetTextChannelsAsync()).ToArray());
  45. }
  46. private static void CheckTextChannels(RestGuild guild, params RestTextChannel[] textChannels)
  47. {
  48. Assert.Equal(textChannels.Length, 5);
  49. Assert.All(textChannels, x =>
  50. {
  51. Assert.NotNull(x);
  52. Assert.NotEqual(x.Id, 0UL);
  53. Assert.True(x.Position >= 0);
  54. });
  55. var text1 = textChannels.Where(x => x.Name == "text1").FirstOrDefault();
  56. var text2 = textChannels.Where(x => x.Name == "text2").FirstOrDefault();
  57. var text3 = textChannels.Where(x => x.Name == "text3").FirstOrDefault();
  58. var text4 = textChannels.Where(x => x.Name == "text4").FirstOrDefault();
  59. var text5 = textChannels.Where(x => x.Name == "text5").FirstOrDefault();
  60. Assert.NotNull(text1);
  61. Assert.True(text1.Id == guild.DefaultChannelId);
  62. Assert.Equal(text1.Position, 1);
  63. Assert.Equal(text1.Topic, "Topic1");
  64. Assert.NotNull(text2);
  65. Assert.Equal(text2.Position, 2);
  66. Assert.Null(text2.Topic);
  67. Assert.NotNull(text3);
  68. Assert.Equal(text3.Topic, "Topic2");
  69. Assert.NotNull(text4);
  70. Assert.Equal(text4.Position, 3);
  71. Assert.Equal(text4.Topic, "Topic2");
  72. Assert.NotNull(text5);
  73. Assert.Null(text5.Topic);
  74. }
  75. internal static async Task Migration_CreateVoiceChannels(DiscordRestClient client, RestGuild guild)
  76. {
  77. var voice1 = await guild.CreateVoiceChannelAsync("voice1");
  78. var voice2 = await guild.CreateVoiceChannelAsync("voice2");
  79. var voice3 = await guild.CreateVoiceChannelAsync("voice3");
  80. await voice1.ModifyAsync(x =>
  81. {
  82. x.Bitrate = 96000;
  83. x.Position = 1;
  84. });
  85. await voice2.ModifyAsync(x =>
  86. {
  87. x.UserLimit = null;
  88. });
  89. await voice3.ModifyAsync(x =>
  90. {
  91. x.Bitrate = 8000;
  92. x.Position = 1;
  93. x.UserLimit = 16;
  94. });
  95. CheckVoiceChannels(voice1, voice2, voice3);
  96. }
  97. [Fact]
  98. public async Task TestVoiceChannels()
  99. {
  100. CheckVoiceChannels((await _guild.GetVoiceChannelsAsync()).ToArray());
  101. }
  102. private static void CheckVoiceChannels(params RestVoiceChannel[] voiceChannels)
  103. {
  104. Assert.Equal(voiceChannels.Length, 3);
  105. Assert.All(voiceChannels, x =>
  106. {
  107. Assert.NotNull(x);
  108. Assert.NotEqual(x.Id, 0UL);
  109. Assert.NotEqual(x.UserLimit, 0);
  110. Assert.True(x.Bitrate > 0);
  111. Assert.True(x.Position >= 0);
  112. });
  113. var voice1 = voiceChannels.Where(x => x.Name == "voice1").FirstOrDefault();
  114. var voice2 = voiceChannels.Where(x => x.Name == "voice2").FirstOrDefault();
  115. var voice3 = voiceChannels.Where(x => x.Name == "voice3").FirstOrDefault();
  116. Assert.NotNull(voice1);
  117. Assert.Equal(voice1.Bitrate, 96000);
  118. Assert.Equal(voice1.Position, 1);
  119. Assert.NotNull(voice2);
  120. Assert.Equal(voice2.UserLimit, null);
  121. Assert.NotNull(voice3);
  122. Assert.Equal(voice3.Bitrate, 8000);
  123. Assert.Equal(voice3.Position, 1);
  124. Assert.Equal(voice3.UserLimit, 16);
  125. }
  126. }
  127. }