| @@ -6,13 +6,19 @@ namespace Discord | |||||
| { | { | ||||
| public partial class Tests | public partial class Tests | ||||
| { | { | ||||
| private void TestHelper(ChannelPermissions value, ChannelPermission permission, bool expected = false) | private void TestHelper(ChannelPermissions value, ChannelPermission permission, bool expected = false) | ||||
| => TestHelper(value.RawValue, (ulong)permission, expected); | => TestHelper(value.RawValue, (ulong)permission, expected); | ||||
| private void TestHelper(GuildPermissions value, GuildPermission permission, bool expected = false) | private void TestHelper(GuildPermissions value, GuildPermission permission, bool expected = false) | ||||
| => TestHelper(value.RawValue, (ulong)permission, expected); | => TestHelper(value.RawValue, (ulong)permission, expected); | ||||
| /// <summary> | |||||
| /// Tests the flag of the given permissions value to the expected output | |||||
| /// and then tries to toggle the flag on and off | |||||
| /// </summary> | |||||
| /// <param name="rawValue"></param> | |||||
| /// <param name="flagValue"></param> | |||||
| /// <param name="expected"></param> | |||||
| private void TestHelper(ulong rawValue, ulong flagValue, bool expected) | private void TestHelper(ulong rawValue, ulong flagValue, bool expected) | ||||
| { | { | ||||
| Assert.Equal(expected, Permissions.GetValue(rawValue, flagValue)); | Assert.Equal(expected, Permissions.GetValue(rawValue, flagValue)); | ||||
| @@ -30,6 +36,45 @@ namespace Discord | |||||
| Assert.Equal(false, Permissions.GetValue(rawValue, flagValue)); | Assert.Equal(false, Permissions.GetValue(rawValue, flagValue)); | ||||
| } | } | ||||
| /// <summary> | |||||
| /// Tests that flag of the given permissions value to be the expected output | |||||
| /// and then tries cycling through the states of the allow and deny values | |||||
| /// for that flag | |||||
| /// </summary> | |||||
| /// <param name="value"></param> | |||||
| /// <param name="flag"></param> | |||||
| /// <param name="expected"></param> | |||||
| private void TestHelper(OverwritePermissions value, ChannelPermission flag, PermValue expected) | |||||
| { | |||||
| // check that the value matches | |||||
| Assert.Equal(expected, Permissions.GetValue(value.AllowValue, value.DenyValue, flag)); | |||||
| // check toggling bits for both allow and deny | |||||
| // have to make copies to get around read only property | |||||
| ulong allow = value.AllowValue; | |||||
| ulong deny = value.DenyValue; | |||||
| // both unset should be inherit | |||||
| Permissions.UnsetFlag(ref allow, (ulong)flag); | |||||
| Permissions.UnsetFlag(ref deny, (ulong)flag); | |||||
| Assert.Equal(PermValue.Inherit, Permissions.GetValue(allow, deny, flag)); | |||||
| // allow set should be allow | |||||
| Permissions.SetFlag(ref allow, (ulong)flag); | |||||
| Permissions.UnsetFlag(ref deny, (ulong)flag); | |||||
| Assert.Equal(PermValue.Allow, Permissions.GetValue(allow, deny, flag)); | |||||
| // deny should be deny | |||||
| Permissions.UnsetFlag(ref allow, (ulong)flag); | |||||
| Permissions.SetFlag(ref deny, (ulong)flag); | |||||
| Assert.Equal(PermValue.Deny, Permissions.GetValue(allow, deny, flag)); | |||||
| // allow takes precedence | |||||
| Permissions.SetFlag(ref allow, (ulong)flag); | |||||
| Permissions.SetFlag(ref deny, (ulong)flag); | |||||
| Assert.Equal(PermValue.Allow, Permissions.GetValue(allow, deny, flag)); | |||||
| } | |||||
| /// <summary> | /// <summary> | ||||
| /// Tests for the <see cref="Discord.Permissions"/> class. | /// Tests for the <see cref="Discord.Permissions"/> class. | ||||
| /// | /// | ||||
| @@ -130,7 +175,7 @@ namespace Discord | |||||
| TestHelper(value, ChannelPermission.ManageRoles, false); | TestHelper(value, ChannelPermission.ManageRoles, false); | ||||
| TestHelper(value, ChannelPermission.ManageWebhooks, false); | TestHelper(value, ChannelPermission.ManageWebhooks, false); | ||||
| TestHelper(value, ChannelPermission.Connect, true); | TestHelper(value, ChannelPermission.Connect, true); | ||||
| TestHelper(value, ChannelPermission.Speak, true); | |||||
| TestHelper(value, ChannelPermission.Speak, true); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, false); | TestHelper(value, ChannelPermission.MuteMembers, false); | ||||
| TestHelper(value, ChannelPermission.DeafenMembers, false); | TestHelper(value, ChannelPermission.DeafenMembers, false); | ||||
| TestHelper(value, ChannelPermission.MoveMembers, false); | TestHelper(value, ChannelPermission.MoveMembers, false); | ||||
| @@ -187,7 +232,7 @@ namespace Discord | |||||
| { | { | ||||
| // make a flag with all possible values for Voice channel permissions | // make a flag with all possible values for Voice channel permissions | ||||
| var value = ChannelPermissions.Voice; | var value = ChannelPermissions.Voice; | ||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, true); | TestHelper(value, ChannelPermission.CreateInstantInvite, true); | ||||
| TestHelper(value, ChannelPermission.ManageChannels, true); | TestHelper(value, ChannelPermission.ManageChannels, true); | ||||
| TestHelper(value, ChannelPermission.AddReactions, false); | TestHelper(value, ChannelPermission.AddReactions, false); | ||||
| @@ -341,5 +386,318 @@ namespace Discord | |||||
| return Task.CompletedTask; | return Task.CompletedTask; | ||||
| } | } | ||||
| /// <summary> | |||||
| /// Test <see cref="Discord.OverwritePermissions"/> | |||||
| /// for when all text permissions are allowed and denied | |||||
| /// </summary> | |||||
| /// <returns></returns> | |||||
| [Fact] | |||||
| public Task TestOverwritePermissionsText() | |||||
| { | |||||
| // allow all for text channel | |||||
| var value = new OverwritePermissions(ChannelPermissions.Text.RawValue, ChannelPermissions.None.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Inherit); | |||||
| value = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Text.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Inherit); | |||||
| return Task.CompletedTask; | |||||
| } | |||||
| /// <summary> | |||||
| /// Test <see cref="Discord.OverwritePermissions"/> | |||||
| /// for when none of the permissions are set. | |||||
| /// </summary> | |||||
| /// <returns></returns> | |||||
| [Fact] | |||||
| public Task TestOverwritePermissionsNone() | |||||
| { | |||||
| // allow all for text channel | |||||
| var value = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.None.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Inherit); | |||||
| value = new OverwritePermissions(); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Inherit); | |||||
| value = OverwritePermissions.InheritAll; | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Inherit); | |||||
| return Task.CompletedTask; | |||||
| } | |||||
| /// <summary> | |||||
| /// Test <see cref="Discord.OverwritePermissions"/> | |||||
| /// for when all dm permissions are allowed and denied | |||||
| /// </summary> | |||||
| /// <returns></returns> | |||||
| [Fact] | |||||
| public Task TestOverwritePermissionsDM() | |||||
| { | |||||
| // allow all for text channel | |||||
| var value = new OverwritePermissions(ChannelPermissions.DM.RawValue, ChannelPermissions.None.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Allow); | |||||
| value = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.DM.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Deny); | |||||
| return Task.CompletedTask; | |||||
| } | |||||
| /// <summary> | |||||
| /// Test <see cref="Discord.OverwritePermissions"/> | |||||
| /// for when all group permissions are allowed and denied | |||||
| /// </summary> | |||||
| /// <returns></returns> | |||||
| [Fact] | |||||
| public Task TestOverwritePermissionsGroup() | |||||
| { | |||||
| // allow all for group channels | |||||
| var value = new OverwritePermissions(ChannelPermissions.Group.RawValue, ChannelPermissions.None.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Allow); | |||||
| value = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Group.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Deny); | |||||
| return Task.CompletedTask; | |||||
| } | |||||
| /// <summary> | |||||
| /// Test <see cref="Discord.OverwritePermissions"/> | |||||
| /// for when all group permissions are allowed and denied | |||||
| /// </summary> | |||||
| /// <returns></returns> | |||||
| [Fact] | |||||
| public Task TestOverwritePermissionsVoice() | |||||
| { | |||||
| // allow all for group channels | |||||
| var value = new OverwritePermissions(ChannelPermissions.Voice.RawValue, ChannelPermissions.None.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Allow); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Allow); | |||||
| value = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Voice.RawValue); | |||||
| TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageChannels, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.EmbedLinks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.AttachFiles, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ReadMessageHistory, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.MentionEveryone, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.UseExternalEmojis, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.ManageRoles, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.ManageWebhooks, PermValue.Inherit); | |||||
| TestHelper(value, ChannelPermission.Connect, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.Speak, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.MuteMembers, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.DeafenMembers, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.MoveMembers, PermValue.Deny); | |||||
| TestHelper(value, ChannelPermission.UseVAD, PermValue.Deny); | |||||
| return Task.CompletedTask; | |||||
| } | |||||
| } | } | ||||
| } | } | ||||