using System.Threading.Tasks; using Spectre.Console.Testing; using Spectre.Console.Tests.Data; using VerifyXunit; using Xunit; using Spectre.Console.Cli; using Spectre.Verify.Extensions; namespace Spectre.Console.Tests.Unit.Cli { public sealed partial class CommandAppTests { [UsesVerify] [ExpectationPath("Cli/Xml")] public sealed class Xml { [Fact] [Expectation("Test_1")] public Task Should_Dump_Correct_Model_For_Case_1() { // Given var fixture = new CommandAppTester(); fixture.Configure(config => { config.PropagateExceptions(); config.AddBranch("animal", animal => { animal.AddBranch("mammal", mammal => { mammal.AddCommand("dog"); mammal.AddCommand("horse"); }); }); }); // When var result = fixture.Run(Constants.XmlDocCommand); // Then return Verifier.Verify(result.Output); } [Fact] [Expectation("Test_2")] public Task Should_Dump_Correct_Model_For_Case_2() { // Given var fixture = new CommandAppTester(); fixture.Configure(config => { config.AddCommand("dog"); }); // When var result = fixture.Run(Constants.XmlDocCommand); // Then return Verifier.Verify(result.Output); } [Fact] [Expectation("Test_3")] public Task Should_Dump_Correct_Model_For_Case_3() { // Given var fixture = new CommandAppTester(); fixture.Configure(config => { config.AddBranch("animal", animal => { animal.AddCommand("dog"); animal.AddCommand("horse"); }); }); // When var result = fixture.Run(Constants.XmlDocCommand); // Then return Verifier.Verify(result.Output); } [Fact] [Expectation("Test_4")] public Task Should_Dump_Correct_Model_For_Case_4() { // Given var fixture = new CommandAppTester(); fixture.Configure(config => { config.AddBranch("animal", animal => { animal.AddCommand("dog"); }); }); // When var result = fixture.Run(Constants.XmlDocCommand); // Then return Verifier.Verify(result.Output); } [Fact] [Expectation("Test_5")] public Task Should_Dump_Correct_Model_For_Case_5() { // Given var fixture = new CommandAppTester(); fixture.Configure(config => { config.AddCommand("cmd"); }); // When var result = fixture.Run(Constants.XmlDocCommand); // Then return Verifier.Verify(result.Output); } [Fact] [Expectation("Test_6")] public Task Should_Dump_Correct_Model_For_Model_With_Default_Command() { // Given var fixture = new CommandAppTester(); fixture.SetDefaultCommand(); fixture.Configure(config => { config.AddCommand("horse"); }); // When var result = fixture.Run(Constants.XmlDocCommand); // Then return Verifier.Verify(result.Output); } } } }