public void Given_TestCommands_Has_Method_TestMethod1()
        {
            var command = _rootcommand.GetSubCommand <TestCommands>(x => nameof(x.TestMethod1));

            command.Handler.Should().NotBeNull();

            var args    = new[] { "TestMethod1" };
            var presult = command.Parse(args);

            var services = new ServiceCollection();

            services.AddTransient <ITestService, TestService>();


            var con = new TestConsole();

            var result = new Builder.CommandLineBuilder(_rootcommand)
                         //.UseDependencyInjection(ctx =>
                         //{
                         //    ctx.AddService(typeof(ITestService), () => new TestService());
                         //})
                         .UseDependencyInjection(services)
                         .UseExceptionHandler((ex, ctx) =>
            {
                con.Error.Write(ex.ToString());
            })
                         .Build()
                         .InvokeAsync(args, con);


            con.Error.ToString().Should().Be(string.Empty);
            con.Out.ToString().Should().Be("TestServices.DoSomething=Hello World");
        }
        public void Given_TestCommands_Has_Method_TestMethod2()
        {
            var command = _rootcommand.GetSubCommand <TestCommands>(x => nameof(x.TestMethod2));

            command.Handler.Should().NotBeNull();

            var args    = new[] { "TestMethod2" };
            var presult = command.Parse(args);

            var con = new TestConsole();

            var result = new Builder.CommandLineBuilder(_rootcommand)
                         .UseBindingContextInjection(ctx =>
            {
                ctx.AddService(typeof(ITestService), () => new TestService());
            })
                         .UseExceptionHandler((ex, ctx) =>
            {
                con.Error.Write(ex.ToString());
            })
                         .Build()
                         .InvokeAsync(args, con);


            con.Error.ToString().Should().Be(string.Empty);
            con.Out.ToString().Should().Be("MyProperty1=foo");
        }