Fix #854 Added ViewChannel enum and property to channel permissions (#874)

* Fix #854 Added ViewChannel enum and property to channel permissions

* replaced usages of ChannelPermission#ReadMessages with ViewChannel

* rename parameter of ChannelPermissions constructor

* made OverwritePermissions#ReadMessages obsolete, use ViewChannel instead

* Fix #854 Added ViewChannel enum and property to channel permissions

replaced usages of ChannelPermission#ReadMessages with ViewChannel

rename parameter of ChannelPermissions constructor

made OverwritePermissions#ReadMessages obsolete, use ViewChannel instead

* renamed readMessages parameter in ChannelPermissions constructor and Modify

* fixed channel permission tests to use ChannelPermission enum instead of GuildPermission enum

* replaced usages of readmessages in channel permission tests

* resolve build warnings for permission tests
This commit is contained in:
Chris Johnston
2018-01-06 19:35:17 -08:00
committed by Christopher F
parent 804d9188e7
commit edfbd055bb
9 changed files with 67 additions and 51 deletions

View File

@@ -7,7 +7,7 @@ namespace Discord
public partial class Tests
{
[Fact]
public void TestChannelPermission()
public Task TestChannelPermission()
{
var perm = new ChannelPermissions();
@@ -29,7 +29,7 @@ namespace Discord
ulong textChannel = (ulong)( ChannelPermission.CreateInstantInvite
| ChannelPermission.ManageChannels
| ChannelPermission.AddReactions
| ChannelPermission.ReadMessages
| ChannelPermission.ViewChannel
| ChannelPermission.SendMessages
| ChannelPermission.SendTTSMessages
| ChannelPermission.ManageMessages
@@ -59,7 +59,7 @@ namespace Discord
// DM Channels
ulong dmChannel = (ulong)(
ChannelPermission.ReadMessages
ChannelPermission.ViewChannel
| ChannelPermission.SendMessages
| ChannelPermission.EmbedLinks
| ChannelPermission.AttachFiles
@@ -82,9 +82,10 @@ namespace Discord
| ChannelPermission.UseVAD
);
Assert.Equal(groupChannel, ChannelPermissions.Group.RawValue);
return Task.CompletedTask;
}
public void TestChannelPermissionModify()
public Task TestChannelPermissionModify()
{
// test channel permission modify
@@ -96,7 +97,7 @@ namespace Discord
// ensure that when modified it works
perm = perm.Modify(createInstantInvite: true);
Assert.True(perm.CreateInstantInvite);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.CreateInstantInvite);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.CreateInstantInvite);
// set false again, move on to next permission
perm = perm.Modify(createInstantInvite: false);
@@ -108,7 +109,7 @@ namespace Discord
perm = perm.Modify(manageChannel: true);
Assert.True(perm.ManageChannel);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageChannels);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageChannels);
perm = perm.Modify(manageChannel: false);
Assert.False(perm.ManageChannel);
@@ -119,21 +120,21 @@ namespace Discord
perm = perm.Modify(addReactions: true);
Assert.True(perm.AddReactions);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.AddReactions);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.AddReactions);
perm = perm.Modify(addReactions: false);
Assert.False(perm.AddReactions);
Assert.Equal(ChannelPermissions.None.RawValue, perm.RawValue);
// individual permission test
Assert.False(perm.ReadMessages);
Assert.False(perm.ViewChannel);
perm = perm.Modify(readMessages: true);
Assert.True(perm.ReadMessages);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ReadMessages);
perm = perm.Modify(viewChannel: true);
Assert.True(perm.ViewChannel);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ViewChannel);
perm = perm.Modify(readMessages: false);
Assert.False(perm.ReadMessages);
perm = perm.Modify(viewChannel: false);
Assert.False(perm.ViewChannel);
Assert.Equal(ChannelPermissions.None.RawValue, perm.RawValue);
// individual permission test
@@ -141,7 +142,7 @@ namespace Discord
perm = perm.Modify(sendMessages: true);
Assert.True(perm.SendMessages);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.SendMessages);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.SendMessages);
perm = perm.Modify(sendMessages: false);
Assert.False(perm.SendMessages);
@@ -152,7 +153,7 @@ namespace Discord
perm = perm.Modify(sendTTSMessages: true);
Assert.True(perm.SendTTSMessages);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.SendTTSMessages);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.SendTTSMessages);
perm = perm.Modify(sendTTSMessages: false);
Assert.False(perm.SendTTSMessages);
@@ -163,7 +164,7 @@ namespace Discord
perm = perm.Modify(manageMessages: true);
Assert.True(perm.ManageMessages);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageMessages);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageMessages);
perm = perm.Modify(manageMessages: false);
Assert.False(perm.ManageMessages);
@@ -174,7 +175,7 @@ namespace Discord
perm = perm.Modify(embedLinks: true);
Assert.True(perm.EmbedLinks);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.EmbedLinks);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.EmbedLinks);
perm = perm.Modify(embedLinks: false);
Assert.False(perm.EmbedLinks);
@@ -185,7 +186,7 @@ namespace Discord
perm = perm.Modify(attachFiles: true);
Assert.True(perm.AttachFiles);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.AttachFiles);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.AttachFiles);
perm = perm.Modify(attachFiles: false);
Assert.False(perm.AttachFiles);
@@ -196,7 +197,7 @@ namespace Discord
perm = perm.Modify(readMessageHistory: true);
Assert.True(perm.ReadMessageHistory);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ReadMessageHistory);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ReadMessageHistory);
perm = perm.Modify(readMessageHistory: false);
Assert.False(perm.ReadMessageHistory);
@@ -207,7 +208,7 @@ namespace Discord
perm = perm.Modify(mentionEveryone: true);
Assert.True(perm.MentionEveryone);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.MentionEveryone);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.MentionEveryone);
perm = perm.Modify(mentionEveryone: false);
Assert.False(perm.MentionEveryone);
@@ -218,7 +219,7 @@ namespace Discord
perm = perm.Modify(useExternalEmojis: true);
Assert.True(perm.UseExternalEmojis);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.UseExternalEmojis);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.UseExternalEmojis);
perm = perm.Modify(useExternalEmojis: false);
Assert.False(perm.UseExternalEmojis);
@@ -229,7 +230,7 @@ namespace Discord
perm = perm.Modify(connect: true);
Assert.True(perm.Connect);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.Connect);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.Connect);
perm = perm.Modify(connect: false);
Assert.False(perm.Connect);
@@ -240,7 +241,7 @@ namespace Discord
perm = perm.Modify(speak: true);
Assert.True(perm.Speak);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.Speak);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.Speak);
perm = perm.Modify(speak: false);
Assert.False(perm.Speak);
@@ -251,7 +252,7 @@ namespace Discord
perm = perm.Modify(muteMembers: true);
Assert.True(perm.MuteMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.MuteMembers);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.MuteMembers);
perm = perm.Modify(muteMembers: false);
Assert.False(perm.MuteMembers);
@@ -262,7 +263,7 @@ namespace Discord
perm = perm.Modify(deafenMembers: true);
Assert.True(perm.DeafenMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.DeafenMembers);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.DeafenMembers);
perm = perm.Modify(deafenMembers: false);
Assert.False(perm.DeafenMembers);
@@ -273,7 +274,7 @@ namespace Discord
perm = perm.Modify(moveMembers: true);
Assert.True(perm.MoveMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.MoveMembers);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.MoveMembers);
perm = perm.Modify(moveMembers: false);
Assert.False(perm.MoveMembers);
@@ -284,7 +285,7 @@ namespace Discord
perm = perm.Modify(useVoiceActivation: true);
Assert.True(perm.UseVAD);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.UseVAD);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.UseVAD);
perm = perm.Modify(useVoiceActivation: false);
Assert.False(perm.UseVAD);
@@ -295,7 +296,7 @@ namespace Discord
perm = perm.Modify(manageRoles: true);
Assert.True(perm.ManageRoles);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageRoles);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageRoles);
perm = perm.Modify(manageRoles: false);
Assert.False(perm.ManageRoles);
@@ -306,19 +307,21 @@ namespace Discord
perm = perm.Modify(manageWebhooks: true);
Assert.True(perm.ManageWebhooks);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageWebhooks);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageWebhooks);
perm = perm.Modify(manageWebhooks: false);
Assert.False(perm.ManageWebhooks);
Assert.Equal(ChannelPermissions.None.RawValue, perm.RawValue);
return Task.CompletedTask;
}
[Fact]
public void TestChannelTypeResolution()
public Task TestChannelTypeResolution()
{
ITextChannel someChannel = null;
// null channels will throw exception
Assert.Throws<ArgumentException>(() => ChannelPermissions.All(someChannel));
return Task.CompletedTask;
}
}
}

View File

@@ -7,7 +7,7 @@ namespace Discord
public partial class Tests
{
[Fact]
public void TestGuildPermission()
public Task TestGuildPermission()
{
// Test Guild Permission Constructors
var perm = new GuildPermissions();
@@ -46,10 +46,12 @@ namespace Discord
GuildPermission.SendMessages | GuildPermission.SendTTSMessages | GuildPermission.EmbedLinks |
GuildPermission.AttachFiles);
Assert.Equal(webHookPermissions, GuildPermissions.Webhook.RawValue);
return Task.CompletedTask;
}
[Fact]
public void TestGuildPermissionModify()
public Task TestGuildPermissionModify()
{
var perm = new GuildPermissions();
@@ -298,6 +300,7 @@ namespace Discord
Assert.False(perm.ManageEmojis);
Assert.Equal(GuildPermissions.None.RawValue, perm.RawValue);
return Task.CompletedTask;
}
}