Initial commit: Nix WSL Wrapper project with DDD, Clean Code, and tests

This commit is contained in:
Marek Novák
2026-07-01 02:04:43 +02:00
commit 161eb7d387
22 changed files with 932 additions and 0 deletions
+46
View File
@@ -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);
}
}
}