public async Task RunAsync_Test() { // Arrange var command = new TestCommand(); var expectedExitCode = await command.ExecuteAsync(); var commandOptionParser = new CommandOptionParser(); var typeProvider = new TypeProvider(typeof(TestCommand)); var commandOptionConverter = new CommandOptionConverter(); var commandResolver = new CommandResolver(typeProvider, commandOptionConverter); var application = new CliApplication(commandOptionParser, commandResolver); // Act var exitCodeValue = await application.RunAsync(); // Assert Assert.That(exitCodeValue, Is.EqualTo(expectedExitCode.Value), "Exit code"); }
public void ParseOptions_Test(IReadOnlyList <string> commandLineArguments, CommandOptionSet expectedCommandOptionSet) { // Arrange var parser = new CommandOptionParser(); // Act var optionSet = parser.ParseOptions(commandLineArguments); // Assert Assert.Multiple(() => { Assert.That(optionSet.CommandName, Is.EqualTo(expectedCommandOptionSet.CommandName), "Command name"); Assert.That(optionSet.Options.Count, Is.EqualTo(expectedCommandOptionSet.Options.Count), "Option count"); for (var i = 0; i < optionSet.Options.Count; i++) { Assert.That(optionSet.Options[i].Name, Is.EqualTo(expectedCommandOptionSet.Options[i].Name), $"Option[{i}] name"); Assert.That(optionSet.Options[i].Values, Is.EqualTo(expectedCommandOptionSet.Options[i].Values), $"Option[{i}] values"); } }); }