From 0d471e2e1dddff26b8caf9656359a3a030ace5ea Mon Sep 17 00:00:00 2001 From: Chris Johnston Date: Wed, 28 Feb 2018 10:50:16 -0800 Subject: [PATCH] Add tests for more Permissions code coverage --- .../Discord.Net.Tests.csproj | 6 + test/Discord.Net.Tests/Tests.Permissions.cs | 192 ++++++++++++++++++ 2 files changed, 198 insertions(+) create mode 100644 test/Discord.Net.Tests/Tests.Permissions.cs diff --git a/test/Discord.Net.Tests/Discord.Net.Tests.csproj b/test/Discord.Net.Tests/Discord.Net.Tests.csproj index bf2457187..46c9f42c1 100644 --- a/test/Discord.Net.Tests/Discord.Net.Tests.csproj +++ b/test/Discord.Net.Tests/Discord.Net.Tests.csproj @@ -10,6 +10,9 @@ PreserveNewest + + + @@ -24,4 +27,7 @@ + + + diff --git a/test/Discord.Net.Tests/Tests.Permissions.cs b/test/Discord.Net.Tests/Tests.Permissions.cs new file mode 100644 index 000000000..ad1d1f769 --- /dev/null +++ b/test/Discord.Net.Tests/Tests.Permissions.cs @@ -0,0 +1,192 @@ +using System; +using System.Threading.Tasks; +using Xunit; + +namespace Discord +{ + public partial class Tests + { + + /// + /// Tests for the class. + /// + /// Tests that text channel permissions get the right value + /// from the Has method. + /// + /// + [Fact] + public Task TestPermissionsHasChannelPermissionText() + { + var value = ChannelPermissions.Text; + // check that the result of GetValue matches for all properties of text channel + Assert.True(value.Has(ChannelPermission.CreateInstantInvite)); + Assert.True(value.Has(ChannelPermission.ManageChannels)); + Assert.True(value.Has(ChannelPermission.AddReactions)); + Assert.True(value.Has(ChannelPermission.ViewChannel)); + Assert.True(value.Has(ChannelPermission.SendMessages)); + Assert.True(value.Has(ChannelPermission.SendTTSMessages)); + Assert.True(value.Has(ChannelPermission.ManageMessages)); + Assert.True(value.Has(ChannelPermission.EmbedLinks)); + Assert.True(value.Has(ChannelPermission.AttachFiles)); + Assert.True(value.Has(ChannelPermission.ReadMessageHistory)); + Assert.True(value.Has(ChannelPermission.MentionEveryone)); + Assert.True(value.Has(ChannelPermission.UseExternalEmojis)); + Assert.True(value.Has(ChannelPermission.ManageRoles)); + Assert.True(value.Has(ChannelPermission.ManageWebhooks)); + + Assert.False(value.Has(ChannelPermission.Connect)); + Assert.False(value.Has(ChannelPermission.Speak)); + Assert.False(value.Has(ChannelPermission.MuteMembers)); + Assert.False(value.Has(ChannelPermission.DeafenMembers)); + Assert.False(value.Has(ChannelPermission.MoveMembers)); + Assert.False(value.Has(ChannelPermission.UseVAD)); + + return Task.CompletedTask; + } + + /// + /// Tests for the class. + /// + /// Tests that no channel permissions get the right value + /// from the Has method. + /// + /// + public Task TestPermissionsHasChannelPermissionNone() + { + // check that none will fail all + var value = ChannelPermissions.None; + + Assert.False(value.Has(ChannelPermission.CreateInstantInvite)); + Assert.False(value.Has(ChannelPermission.ManageChannels)); + Assert.False(value.Has(ChannelPermission.AddReactions)); + Assert.False(value.Has(ChannelPermission.ViewChannel)); + Assert.False(value.Has(ChannelPermission.SendMessages)); + Assert.False(value.Has(ChannelPermission.SendTTSMessages)); + Assert.False(value.Has(ChannelPermission.ManageMessages)); + Assert.False(value.Has(ChannelPermission.EmbedLinks)); + Assert.False(value.Has(ChannelPermission.AttachFiles)); + Assert.False(value.Has(ChannelPermission.ReadMessageHistory)); + Assert.False(value.Has(ChannelPermission.MentionEveryone)); + Assert.False(value.Has(ChannelPermission.UseExternalEmojis)); + Assert.False(value.Has(ChannelPermission.ManageRoles)); + Assert.False(value.Has(ChannelPermission.ManageWebhooks)); + Assert.False(value.Has(ChannelPermission.Connect)); + Assert.False(value.Has(ChannelPermission.Speak)); + Assert.False(value.Has(ChannelPermission.MuteMembers)); + Assert.False(value.Has(ChannelPermission.DeafenMembers)); + Assert.False(value.Has(ChannelPermission.MoveMembers)); + Assert.False(value.Has(ChannelPermission.UseVAD)); + + return Task.CompletedTask; + } + + /// + /// Tests for the class. + /// + /// Tests that the dm channel permissions get the right value + /// from the Has method. + /// + /// + public Task TestPermissionsHasChannelPermissionDM() + { + // check that none will fail all + var value = ChannelPermissions.DM; + + Assert.False(value.Has(ChannelPermission.CreateInstantInvite)); + Assert.False(value.Has(ChannelPermission.ManageChannels)); + Assert.False(value.Has(ChannelPermission.AddReactions)); + Assert.True(value.Has(ChannelPermission.ViewChannel)); + Assert.True(value.Has(ChannelPermission.SendMessages)); + Assert.False(value.Has(ChannelPermission.SendTTSMessages)); + Assert.False(value.Has(ChannelPermission.ManageMessages)); + Assert.True(value.Has(ChannelPermission.EmbedLinks)); + Assert.True(value.Has(ChannelPermission.AttachFiles)); + Assert.True(value.Has(ChannelPermission.ReadMessageHistory)); + Assert.False(value.Has(ChannelPermission.MentionEveryone)); + Assert.True(value.Has(ChannelPermission.UseExternalEmojis)); + Assert.False(value.Has(ChannelPermission.ManageRoles)); + Assert.False(value.Has(ChannelPermission.ManageWebhooks)); + Assert.True(value.Has(ChannelPermission.Connect)); + Assert.True(value.Has(ChannelPermission.Speak)); + Assert.False(value.Has(ChannelPermission.MuteMembers)); + Assert.False(value.Has(ChannelPermission.DeafenMembers)); + Assert.False(value.Has(ChannelPermission.MoveMembers)); + Assert.True(value.Has(ChannelPermission.UseVAD)); + + return Task.CompletedTask; + } + + /// + /// Tests for the class. + /// + /// Tests that the group channel permissions get the right value + /// from the Has method. + /// + /// + public Task TestPermissionsHasChannelPermissionGroup() + { + var value = ChannelPermissions.Group; + + Assert.False(value.Has(ChannelPermission.CreateInstantInvite)); + Assert.False(value.Has(ChannelPermission.ManageChannels)); + Assert.False(value.Has(ChannelPermission.AddReactions)); + Assert.False(value.Has(ChannelPermission.ViewChannel)); + Assert.True(value.Has(ChannelPermission.SendMessages)); + Assert.True(value.Has(ChannelPermission.SendTTSMessages)); + Assert.False(value.Has(ChannelPermission.ManageMessages)); + Assert.True(value.Has(ChannelPermission.EmbedLinks)); + Assert.True(value.Has(ChannelPermission.AttachFiles)); + Assert.False(value.Has(ChannelPermission.ReadMessageHistory)); + Assert.False(value.Has(ChannelPermission.MentionEveryone)); + Assert.False(value.Has(ChannelPermission.UseExternalEmojis)); + Assert.False(value.Has(ChannelPermission.ManageRoles)); + Assert.False(value.Has(ChannelPermission.ManageWebhooks)); + Assert.True(value.Has(ChannelPermission.Connect)); + Assert.True(value.Has(ChannelPermission.Speak)); + Assert.False(value.Has(ChannelPermission.MuteMembers)); + Assert.False(value.Has(ChannelPermission.DeafenMembers)); + Assert.False(value.Has(ChannelPermission.MoveMembers)); + Assert.True(value.Has(ChannelPermission.UseVAD)); + + return Task.CompletedTask; + } + + + /// + /// Tests for the class. + /// + /// Tests that the voice channel permissions get the right value + /// from the Has method. + /// + /// + [Fact] + public Task TestPermissionsHasChannelPermissionVoice() + { + // make a flag with all possible values for Voice channel permissions + var value = ChannelPermissions.Voice; + + Assert.True(value.Has(ChannelPermission.CreateInstantInvite)); + Assert.True(value.Has(ChannelPermission.ManageChannels)); + Assert.False(value.Has(ChannelPermission.AddReactions)); + Assert.False(value.Has(ChannelPermission.ViewChannel)); + Assert.False(value.Has(ChannelPermission.SendMessages)); + Assert.False(value.Has(ChannelPermission.SendTTSMessages)); + Assert.False(value.Has(ChannelPermission.ManageMessages)); + Assert.False(value.Has(ChannelPermission.EmbedLinks)); + Assert.False(value.Has(ChannelPermission.AttachFiles)); + Assert.False(value.Has(ChannelPermission.ReadMessageHistory)); + Assert.False(value.Has(ChannelPermission.MentionEveryone)); + Assert.False(value.Has(ChannelPermission.UseExternalEmojis)); + Assert.True(value.Has(ChannelPermission.ManageRoles)); + Assert.False(value.Has(ChannelPermission.ManageWebhooks)); + Assert.True(value.Has(ChannelPermission.Connect)); + Assert.True(value.Has(ChannelPermission.Speak)); + Assert.True(value.Has(ChannelPermission.MuteMembers)); + Assert.True(value.Has(ChannelPermission.DeafenMembers)); + Assert.True(value.Has(ChannelPermission.MoveMembers)); + Assert.True(value.Has(ChannelPermission.UseVAD)); + + return Task.CompletedTask; + } + } +}