Skip to content

Commit

Permalink
Merge pull request #11 from Pogromca-SCP/tests-rework
Browse files Browse the repository at this point in the history
Uncommented permissions tests
  • Loading branch information
Pogromca-SCP committed May 29, 2024
2 parents c455cc0 + c7d8cc7 commit 8d0570d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 39 deletions.
31 changes: 12 additions & 19 deletions PluginCommands.UnitTests/Commands/PluginCommandsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
using NUnit.Framework;
using PluginAPI.Core.Attributes;
using PluginCommands.Commands;
using System;
using System.Collections.Generic;
using System.Linq;

Expand All @@ -26,7 +25,7 @@ public class PluginCommandsTests
private static IEnumerable<object[]> ValidPluginTestCases => MergeCommandsAndPlugins(_testedCommands, _validPluginNames);

private static IEnumerable<object[]> MergeCommandsAndPlugins(ICommand[] commands, string[] plugins) =>
commands.SelectMany(c => plugins.Select(p => new object[] { c, p }));
commands.SelectMany(c => plugins.Select<string, object[]>(p => [c, p]));
#endregion

[OneTimeSetUp]
Expand All @@ -36,19 +35,17 @@ private static IEnumerable<object[]> MergeCommandsAndPlugins(ICommand[] commands
[TestCaseSource(nameof(_testedCommands))]
public void Execute_ShouldFail_WhenCommandSenderIsNull(ICommand command) => PluginsManagerCommandTests.TestCommand_WithNullSender(command);

// Test temporarily disabled due to runtime conflicts.
//[TestCaseSource(nameof(_testedCommands))]
[TestCaseSource(nameof(_testedCommands))]
public void Execute_ShouldFail_WhenCommandSenderHasMissingPermissions(ICommand command) => PluginsManagerCommandTests.TestCommand_WithInvalidSender(command);

// Test temporarily disabled due to runtime conflicts.
//[TestCaseSource(nameof(_testedCommands))]
[TestCaseSource(nameof(_testedCommands))]
public void Execute_ShouldFail_WhenNoArgumentsWereProvided(ICommand command)
{
// Arrange
var senderMock = PluginsManagerCommandTests.GetValidSender();

// Act
var result = command.Execute(new ArraySegment<string>(), senderMock.Object, out var response);
var result = command.Execute(new(), senderMock.Object, out var response);

// Assert
result.Should().BeFalse();
Expand All @@ -57,15 +54,14 @@ public void Execute_ShouldFail_WhenNoArgumentsWereProvided(ICommand command)
senderMock.VerifyNoOtherCalls();
}

// Test temporarily disabled due to runtime conflicts.
//[TestCaseSource(nameof(InvalidPluginTestCases))]
[TestCaseSource(nameof(InvalidPluginTestCases))]
public void Execute_ShouldFail_WhenPluginDoesNotExist_InGame(ICommand command, string pluginName)
{
// Arrange
var senderMock = PluginsManagerCommandTests.GetValidSender();

// Act
var result = command.Execute(new ArraySegment<string>(pluginName.Split(' ')), senderMock.Object, out var response);
var result = command.Execute(new(pluginName.Split(' ')), senderMock.Object, out var response);

// Assert
result.Should().BeFalse();
Expand All @@ -74,15 +70,14 @@ public void Execute_ShouldFail_WhenPluginDoesNotExist_InGame(ICommand command, s
senderMock.VerifyNoOtherCalls();
}

// Test temporarily disabled due to runtime conflicts.
//[TestCaseSource(nameof(InvalidPluginTestCases))]
[TestCaseSource(nameof(InvalidPluginTestCases))]
public void Execute_ShouldFail_WhenPluginDoesNotExist_InConsole(ICommand command, string pluginName)
{
// Arrange
var senderMock = PluginsManagerCommandTests.GetConsoleSender();

// Act
var result = command.Execute(new ArraySegment<string>(pluginName.Split(' ')), senderMock.Object, out var response);
var result = command.Execute(new(pluginName.Split(' ')), senderMock.Object, out var response);

// Assert
result.Should().BeFalse();
Expand All @@ -91,15 +86,14 @@ public void Execute_ShouldFail_WhenPluginDoesNotExist_InConsole(ICommand command
senderMock.VerifyNoOtherCalls();
}

// Test temporarily disabled due to runtime conflicts.
//[TestCaseSource(nameof(ValidPluginTestCases))]
[TestCaseSource(nameof(ValidPluginTestCases))]
public void Execute_ShouldSucceed_WhenGoldFlowInGame(ICommand command, string pluginName)
{
// Arrange
var senderMock = PluginsManagerCommandTests.GetValidSender();

// Act
var result = command.Execute(new ArraySegment<string>(pluginName.Split(' ')), senderMock.Object, out var response);
var result = command.Execute(new(pluginName.Split(' ')), senderMock.Object, out var response);

// Assert
result.Should().BeTrue();
Expand All @@ -108,15 +102,14 @@ public void Execute_ShouldSucceed_WhenGoldFlowInGame(ICommand command, string pl
senderMock.VerifyNoOtherCalls();
}

// Test temporarily disabled due to runtime conflicts.
//[TestCaseSource(nameof(ValidPluginTestCases))]
[TestCaseSource(nameof(ValidPluginTestCases))]
public void Execute_ShouldSucceed_WhenGoldFlowInConsole(ICommand command, string pluginName)
{
// Arrange
var senderMock = PluginsManagerCommandTests.GetConsoleSender();

// Act
var result = command.Execute(new ArraySegment<string>(pluginName.Split(' ')), senderMock.Object, out var response);
var result = command.Execute(new(pluginName.Split(' ')), senderMock.Object, out var response);

// Assert
result.Should().BeTrue();
Expand Down
30 changes: 12 additions & 18 deletions PluginCommands.UnitTests/Commands/PluginsManagerCommandTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
using PluginAPI.Core;
using PluginAPI.Core.Attributes;
using PluginAPI.Loader;
using PluginAPI.Loader.Features;
using PluginCommands.Commands;
using System;
using System.Collections.Generic;
Expand All @@ -24,7 +23,7 @@ public class PluginsManagerCommandTests
#endregion

#region Tests Static Utils
private static readonly Type[] _emptyTypesArray = new Type[0];
private static readonly Type[] _emptyTypesArray = [];

public static Mock<CommandSender> GetInvalidSender() => GetSender(0uL);

Expand All @@ -33,7 +32,7 @@ public class PluginsManagerCommandTests
public static void TestCommand_WithNullSender(ICommand command)
{
// Act
var result = command.Execute(new ArraySegment<string>(), null, out var response);
var result = command.Execute(new(), null, out var response);

// Assert
result.Should().BeFalse();
Expand All @@ -46,7 +45,7 @@ public static void TestCommand_WithInvalidSender(ICommand command)
var senderMock = GetInvalidSender();

// Act
var result = command.Execute(new ArraySegment<string>(), senderMock.Object, out var response);
var result = command.Execute(new(), senderMock.Object, out var response);

// Assert
result.Should().BeFalse();
Expand All @@ -70,7 +69,7 @@ public static void InstallTestPlugins(IEnumerable<object> pluginsToInstall)
foreach (var pl in pluginsToInstall)
{
var pluginType = pl.GetType();
plugins.Add(pluginType, new PluginHandler(new PluginDirectory("./"), pl, pluginType, _emptyTypesArray));
plugins.Add(pluginType, new(new("./"), pl, pluginType, _emptyTypesArray));
}

AssemblyLoader.Plugins.Add(Assembly.GetExecutingAssembly(), plugins);
Expand All @@ -86,7 +85,7 @@ private static Mock<CommandSender> GetSender(ulong perms)
#endregion

[OneTimeSetUp]
public void OneTimeSetUp() => InstallTestPlugins(new[] { new TestPlugin() });
public void OneTimeSetUp() => InstallTestPlugins([new TestPlugin()]);

#region CheckPluginsManagementPerms Tests
[Test]
Expand All @@ -99,8 +98,7 @@ public void CheckPluginsManagementPerms_ShouldReturnProperMessage_WhenCommandSen
result.Should().Be(NullSenderMessage);
}

// Test temporarily disabled due to runtime conflicts.
//[Test]
[Test]
public void CheckPluginsManagementPerms_ShouldReturnProperMessage_WhenCommandSenderHasMissingPermissions()
{
// Arrange
Expand All @@ -115,8 +113,7 @@ public void CheckPluginsManagementPerms_ShouldReturnProperMessage_WhenCommandSen
senderMock.VerifyNoOtherCalls();
}

// Test temporarily disabled due to runtime conflicts.
//[Test]
[Test]
public void CheckPluginsManagementPerms_ShouldReturnNull_WhenCommandSenderHasRequiredPermissions()
{
// Arrange
Expand Down Expand Up @@ -146,20 +143,18 @@ public void PluginsManagerCommand_ShouldProperlyInitialize()
[Test]
public void ExecuteParent_ShouldFail_WhenCommandSenderIsNull() => TestCommand_WithNullSender(new PluginsManagerCommand());

// Test temporarily disabled due to runtime conflicts.
//[Test]
[Test]
public void ExecuteParent_ShouldFail_WhenCommandSenderHasMissingPermissions() => TestCommand_WithInvalidSender(new PluginsManagerCommand());

// Test temporarily disabled due to runtime conflicts.
//[Test]
[Test]
public void ExecuteParent_ShouldSucceed_WhenGoldFlowInGame()
{
// Arrange
var command = new PluginsManagerCommand();
var senderMock = GetValidSender();

// Act
var result = command.Execute(new ArraySegment<string>(), senderMock.Object, out var response);
var result = command.Execute(new(), senderMock.Object, out var response);

// Assert
result.Should().BeTrue();
Expand All @@ -168,16 +163,15 @@ public void ExecuteParent_ShouldSucceed_WhenGoldFlowInGame()
senderMock.VerifyNoOtherCalls();
}

// Test temporarily disabled due to runtime conflicts.
//[Test]
[Test]
public void ExecuteParent_ShouldSucceed_WhenGoldFlowInConsole()
{
// Arrange
var command = new PluginsManagerCommand();
var senderMock = GetConsoleSender();

// Act
var result = command.Execute(new ArraySegment<string>(), senderMock.Object, out var response);
var result = command.Execute(new(), senderMock.Object, out var response);

// Assert
result.Should().BeTrue();
Expand Down
4 changes: 2 additions & 2 deletions PluginCommands.UnitTests/PluginCommands.UnitTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="Moq" Version="4.20.70" />
<PackageReference Include="Northwood.PluginAPI" Version="13.1.2" />
<PackageReference Include="NUnit" Version="4.0.1" />
<PackageReference Include="NUnit" Version="4.1.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
</ItemGroup>
<ItemGroup>
Expand Down

0 comments on commit 8d0570d

Please sign in to comment.