diff --git a/tests/BuslyCLI.Console.Tests/Commands/CommandTestBase.cs b/tests/BuslyCLI.Console.Tests/Commands/CommandTestBase.cs new file mode 100644 index 0000000..7ee5fec --- /dev/null +++ b/tests/BuslyCLI.Console.Tests/Commands/CommandTestBase.cs @@ -0,0 +1,21 @@ +using BuslyCLI.Infrastructure; +using Microsoft.Extensions.DependencyInjection; +using Spectre.Console.Cli.Extensions.DependencyInjection; +using Spectre.Console.Cli.Testing; + +namespace BuslyCLI.Console.Tests.Commands; + +public abstract class CommandTestBase +{ + protected CommandAppTester Sut { get; private set; } = null!; + + [SetUp] + public void Setup() + { + var registrations = new ServiceCollection(); + registrations.AddBuslyCLIServices(); + using var registrar = new DependencyInjectionRegistrar(registrations); + Sut = new CommandAppTester(registrar); + Sut.Configure(AppConfiguration.GetSpectreCommandConfiguration()); + } +} \ No newline at end of file diff --git a/tests/BuslyCLI.Console.Tests/Commands/Transport/CurrentTransportTests.cs b/tests/BuslyCLI.Console.Tests/Commands/Transport/CurrentTransportTests.cs index 9002fbd..e0f3134 100644 --- a/tests/BuslyCLI.Console.Tests/Commands/Transport/CurrentTransportTests.cs +++ b/tests/BuslyCLI.Console.Tests/Commands/Transport/CurrentTransportTests.cs @@ -1,25 +1,10 @@ using BuslyCLI.Console.Tests.TestHelpers; -using BuslyCLI.Infrastructure; -using Microsoft.Extensions.DependencyInjection; -using Spectre.Console.Cli.Extensions.DependencyInjection; -using Spectre.Console.Cli.Testing; using Spectre.Console.Testing; namespace BuslyCLI.Console.Tests.Commands.Transport; -public class CurrentTransportTests +public class CurrentTransportTests : CommandTestBase { - private CommandAppTester _sut; - - [SetUp] - public void Setup() - { - var registrations = new ServiceCollection(); - registrations.AddBuslyCLIServices(); - using var registrar = new DependencyInjectionRegistrar(registrations); - _sut = new CommandAppTester(registrar); - _sut.Configure(AppConfiguration.GetSpectreCommandConfiguration()); - } [Test] public void ShouldOutputCurrentTransport() @@ -36,7 +21,7 @@ public void ShouldOutputCurrentTransport() using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); // Act - var result = _sut.Run("transport", "current", "--config", configFile.FilePath); + var result = Sut.Run("transport", "current", "--config", configFile.FilePath); // Assert Assert.That(result.ExitCode, Is.EqualTo(0)); @@ -61,7 +46,7 @@ public void ShouldOutputCurrentTransportNotConfigured() using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); // Act - var result = _sut.Run("transport", "current", "--config", configFile.FilePath); + var result = Sut.Run("transport", "current", "--config", configFile.FilePath); // Assert Assert.That(result.ExitCode, Is.EqualTo(0)); diff --git a/tests/BuslyCLI.Console.Tests/Commands/Transport/DeleteTransportTests.cs b/tests/BuslyCLI.Console.Tests/Commands/Transport/DeleteTransportTests.cs index 44e19ec..17567f3 100644 --- a/tests/BuslyCLI.Console.Tests/Commands/Transport/DeleteTransportTests.cs +++ b/tests/BuslyCLI.Console.Tests/Commands/Transport/DeleteTransportTests.cs @@ -1,25 +1,10 @@ using BuslyCLI.Console.Tests.TestHelpers; -using BuslyCLI.Infrastructure; -using Microsoft.Extensions.DependencyInjection; -using Spectre.Console.Cli.Extensions.DependencyInjection; -using Spectre.Console.Cli.Testing; using Spectre.Console.Testing; namespace BuslyCLI.Console.Tests.Commands.Transport; -public class DeleteTransportTests +public class DeleteTransportTests : CommandTestBase { - private CommandAppTester _sut; - - [SetUp] - public void Setup() - { - var registrations = new ServiceCollection(); - registrations.AddBuslyCLIServices(); - using var registrar = new DependencyInjectionRegistrar(registrations); - _sut = new CommandAppTester(registrar); - _sut.Configure(AppConfiguration.GetSpectreCommandConfiguration()); - } [Test] public void ShouldBeIdempotentWhenDeletingNonExistingTransport() @@ -37,7 +22,7 @@ public void ShouldBeIdempotentWhenDeletingNonExistingTransport() var nonExistingTransport = Guid.NewGuid().ToString(); // Act - var result = _sut.Run("transport", "delete", nonExistingTransport, "--config", configFile.FilePath); + var result = Sut.Run("transport", "delete", nonExistingTransport, "--config", configFile.FilePath); Assert.That(result.ExitCode, Is.EqualTo(0)); Assert.That(result.Output, Is.EqualTo($"Cannot delete transport {nonExistingTransport} since it doesn't exist in the config file.")); @@ -58,7 +43,7 @@ public void ShouldDeleteTransport() using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); // Act - var result = _sut.Run("transport", "delete", "local-learning", "--config", configFile.FilePath); + var result = Sut.Run("transport", "delete", "local-learning", "--config", configFile.FilePath); Assert.That(result.ExitCode, Is.EqualTo(0)); Assert.That(result.Output, Is.EqualTo( diff --git a/tests/BuslyCLI.Console.Tests/Commands/Transport/ListTransportTests.cs b/tests/BuslyCLI.Console.Tests/Commands/Transport/ListTransportTests.cs index 7b808d5..d3d5575 100644 --- a/tests/BuslyCLI.Console.Tests/Commands/Transport/ListTransportTests.cs +++ b/tests/BuslyCLI.Console.Tests/Commands/Transport/ListTransportTests.cs @@ -1,25 +1,10 @@ using BuslyCLI.Console.Tests.TestHelpers; -using BuslyCLI.Infrastructure; -using Microsoft.Extensions.DependencyInjection; -using Spectre.Console.Cli.Extensions.DependencyInjection; -using Spectre.Console.Cli.Testing; using Spectre.Console.Testing; namespace BuslyCLI.Console.Tests.Commands.Transport; -public class ListTransportTests +public class ListTransportTests : CommandTestBase { - private CommandAppTester _sut; - - [SetUp] - public void Setup() - { - var registrations = new ServiceCollection(); - registrations.AddBuslyCLIServices(); - using var registrar = new DependencyInjectionRegistrar(registrations); - _sut = new CommandAppTester(registrar); - _sut.Configure(AppConfiguration.GetSpectreCommandConfiguration()); - } [Test] public void ShouldOutputAnEmptyGridWhenConfigFileIsEmptyYaml() @@ -29,7 +14,7 @@ public void ShouldOutputAnEmptyGridWhenConfigFileIsEmptyYaml() --- """; using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); - var result = _sut.Run("transport", "list", "--config", configFile.FilePath); + var result = Sut.Run("transport", "list", "--config", configFile.FilePath); Assert.That(result.ExitCode, Is.EqualTo(0)); Assert.That(result.Output, Is.EqualTo("CURRENT NAME TRANSPORT-TYPE")); @@ -44,7 +29,7 @@ public void ShouldOutputAnEmptyGridWhenTransportArrayIsEmpty() transports: """; using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); - var result = _sut.Run("transport", "list", "--config", configFile.FilePath); + var result = Sut.Run("transport", "list", "--config", configFile.FilePath); Assert.That(result.ExitCode, Is.EqualTo(0)); Assert.That(result.Output, Is.EqualTo("CURRENT NAME TRANSPORT-TYPE")); @@ -64,7 +49,7 @@ public void ShouldOutputASingleTransport() using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); // Act - var result = _sut.Run("transport", "list", "--config", configFile.FilePath); + var result = Sut.Run("transport", "list", "--config", configFile.FilePath); // Assert Assert.That(result.ExitCode, Is.EqualTo(0)); diff --git a/tests/BuslyCLI.Console.Tests/Commands/Transport/SetTransportTests.cs b/tests/BuslyCLI.Console.Tests/Commands/Transport/SetTransportTests.cs index 756c2df..e87f3e2 100644 --- a/tests/BuslyCLI.Console.Tests/Commands/Transport/SetTransportTests.cs +++ b/tests/BuslyCLI.Console.Tests/Commands/Transport/SetTransportTests.cs @@ -1,25 +1,10 @@ using BuslyCLI.Console.Tests.TestHelpers; -using BuslyCLI.Infrastructure; -using Microsoft.Extensions.DependencyInjection; -using Spectre.Console.Cli.Extensions.DependencyInjection; -using Spectre.Console.Cli.Testing; using Spectre.Console.Testing; namespace BuslyCLI.Console.Tests.Commands.Transport; -public class SetTransportTests +public class SetTransportTests : CommandTestBase { - private CommandAppTester _sut; - - [SetUp] - public void Setup() - { - var registrations = new ServiceCollection(); - registrations.AddBuslyCLIServices(); - using var registrar = new DependencyInjectionRegistrar(registrations); - _sut = new CommandAppTester(registrar); - _sut.Configure(AppConfiguration.GetSpectreCommandConfiguration()); - } [Test] public void ShouldOutputAMessageWhenTransportDoesNotExist() @@ -37,7 +22,7 @@ public void ShouldOutputAMessageWhenTransportDoesNotExist() var nonExistingTransport = $"{Guid.NewGuid():N}"; // Act - var result = _sut.Run("transport", "set", nonExistingTransport, "--config", configFile.FilePath); + var result = Sut.Run("transport", "set", nonExistingTransport, "--config", configFile.FilePath); // Assert Assert.That(result.ExitCode, Is.EqualTo(0)); @@ -66,7 +51,7 @@ public void ShouldOutputAMessageWhenTransportIsSet() using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); // Act - var result = _sut.Run("transport", "set", "local-learning2", "--config", configFile.FilePath); + var result = Sut.Run("transport", "set", "local-learning2", "--config", configFile.FilePath); // Assert Assert.That(result.ExitCode, Is.EqualTo(0)); @@ -92,7 +77,7 @@ public void ShouldBeIdempotentWhenSettingTransportToTheAlreadyConfiguredTranspor using var configFile = new TestableNServiceBusConfigurationFile(yamlFile); // Act - var result = _sut.Run("transport", "set", "local-learning", "--config", configFile.FilePath); + var result = Sut.Run("transport", "set", "local-learning", "--config", configFile.FilePath); // Assert Assert.That(result.ExitCode, Is.EqualTo(0));