Files
NixOS_WindowsWrapper/tests/NixWslWrapper.Tests/CliTests.cs
T

47 lines
1.5 KiB
C#

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);
}
}
}