Browse Source

Add tests for more Permissions code coverage

pull/967/head
Chris Johnston 7 years ago
parent
commit
0d471e2e1d
2 changed files with 198 additions and 0 deletions
  1. +6
    -0
      test/Discord.Net.Tests/Discord.Net.Tests.csproj
  2. +192
    -0
      test/Discord.Net.Tests/Tests.Permissions.cs

+ 6
- 0
test/Discord.Net.Tests/Discord.Net.Tests.csproj View File

@@ -10,6 +10,9 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="Tests.Permissions.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../../src/Discord.Net.Commands/Discord.Net.Commands.csproj" />
<ProjectReference Include="../../src/Discord.Net.Core/Discord.Net.Core.csproj" />
@@ -24,4 +27,7 @@
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
<PackageReference Include="xunit.runner.reporters" Version="2.2.0" />
</ItemGroup>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
</Project>

+ 192
- 0
test/Discord.Net.Tests/Tests.Permissions.cs View File

@@ -0,0 +1,192 @@
using System;
using System.Threading.Tasks;
using Xunit;

namespace Discord
{
public partial class Tests
{

/// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Tests that text channel permissions get the right value
/// from the Has method.
/// </summary>
/// <returns></returns>
[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;
}

/// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Tests that no channel permissions get the right value
/// from the Has method.
/// </summary>
/// <returns></returns>
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;
}

/// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Tests that the dm channel permissions get the right value
/// from the Has method.
/// </summary>
/// <returns></returns>
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;
}

/// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Tests that the group channel permissions get the right value
/// from the Has method.
/// </summary>
/// <returns></returns>
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;
}


/// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Tests that the voice channel permissions get the right value
/// from the Has method.
/// </summary>
/// <returns></returns>
[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;
}
}
}

Loading…
Cancel
Save