diff --git a/test/Discord.Net.Tests/Tests.Permissions.cs b/test/Discord.Net.Tests/Tests.Permissions.cs
index e22659d15..be8e9e054 100644
--- a/test/Discord.Net.Tests/Tests.Permissions.cs
+++ b/test/Discord.Net.Tests/Tests.Permissions.cs
@@ -702,5 +702,71 @@ namespace Discord
return Task.CompletedTask;
}
+
+ ///
+ /// Tests for the
+ /// method to ensure that the default no-param call does not modify the resulting value
+ /// of the OverwritePermissions.
+ ///
+ ///
+ public Task TestOverwritePermissionModifyNoParam()
+ {
+ // test for all Text allowed, none denied
+ var original = new OverwritePermissions(ChannelPermissions.Text.RawValue, ChannelPermissions.None.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // none allowed, text denied
+ original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Text.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // category allowed, none denied
+ original = new OverwritePermissions(ChannelPermissions.Category.RawValue, ChannelPermissions.None.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // none allowed, category denied
+ original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Category.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // DM allowed, none denied
+ original = new OverwritePermissions(ChannelPermissions.DM.RawValue, ChannelPermissions.None.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // none allowed, DM denied
+ original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.DM.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // voice allowed, none denied
+ original = new OverwritePermissions(ChannelPermissions.Voice.RawValue, ChannelPermissions.None.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // none allowed, voice denied
+ original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Voice.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // group allowed, none denied
+ original = new OverwritePermissions(ChannelPermissions.Group.RawValue, ChannelPermissions.None.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // none allowed, group denied
+ original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Group.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ // none allowed, none denied
+ original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.None.RawValue);
+ Assert.Equal(original.AllowValue, original.Modify().AllowValue);
+ Assert.Equal(original.DenyValue, original.Modify().DenyValue);
+
+ return Task.CompletedTask;
+ }
}
}