Initial commit: Nix WSL Wrapper project with DDD, Clean Code, and tests
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using Moq;
|
||||
using NixWslWrapper.Cli;
|
||||
using NixWslWrapper.Core.Domain;
|
||||
using NixWslWrapper.Core.Interfaces;
|
||||
using Xunit;
|
||||
|
||||
namespace NixWslWrapper.Tests
|
||||
{
|
||||
public class CliTests
|
||||
{
|
||||
[Fact]
|
||||
public void CliController_ForwardArguments_ShouldReturnExecutorExitCode()
|
||||
{
|
||||
var mockExecutor = new Mock<ICommandExecutor>();
|
||||
var expectedResult = new ExecutionResult(42);
|
||||
mockExecutor
|
||||
.Setup(m => m.Execute(It.IsAny<NixArguments>(), It.IsAny<WslTarget>()))
|
||||
.Returns(expectedResult);
|
||||
|
||||
var controller = new CliController(mockExecutor.Object);
|
||||
string[] cliArgs = new[] { "run", "nixpkgs#hello" };
|
||||
|
||||
int exitCode = controller.Run(cliArgs);
|
||||
|
||||
Assert.Equal(42, exitCode);
|
||||
mockExecutor.Verify(m => m.Execute(
|
||||
It.Is<NixArguments>(a => a.RawArguments.Length == 2 && a.RawArguments[0] == "run"),
|
||||
It.IsAny<WslTarget>()
|
||||
), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CliController_HelpMenuFlag_ShouldReturnZeroImmediately()
|
||||
{
|
||||
var mockExecutor = new Mock<ICommandExecutor>();
|
||||
var controller = new CliController(mockExecutor.Object);
|
||||
string[] cliArgs = new[] { "--wsl-help" };
|
||||
|
||||
int exitCode = controller.Run(cliArgs);
|
||||
|
||||
Assert.Equal(0, exitCode);
|
||||
mockExecutor.Verify(m => m.Execute(It.IsAny<NixArguments>(), It.IsAny<WslTarget>()), Times.Never);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user