public async Task PathToProgram_is_correctly_parsed(RunExeCommand sut, CommandHandlerSpy commandHandler, string program)
        {
            sut.Handler = commandHandler;

            await sut.InvokeAsync($"exe {program}");

            Assert.That(commandHandler.InvocationContext.ParseResult.ValueForArgument(sut.Arguments.First() as Argument <FileInfo>).ToString(), Is.EqualTo(program));
        }
        public async Task Token_option_is_null_when_not_added(RunExeCommand sut, CommandHandlerSpy commandHandler, string program)
        {
            sut.Handler = commandHandler;

            await sut.InvokeAsync($"exe {program}");

            Assert.That(commandHandler.InvocationContext.ParseResult.ValueForOption(CommonOptions.TokenOption), Is.Null);
        }
        public async Task FilePrefix_option_is_correctly_parsed(RunExeCommand sut, CommandHandlerSpy commandHandler, string program, string filePrefix)
        {
            sut.Handler = commandHandler;

            await sut.InvokeAsync($"exe {program} --prefix {filePrefix}");

            Assert.That(commandHandler.InvocationContext.ParseResult.ValueForOption(CommonOptions.FilePrefixOption), Is.EqualTo(filePrefix));
        }
        public async Task Bucket_option_is_correctly_parsed(RunExeCommand sut, CommandHandlerSpy commandHandler, string program, string bucket)
        {
            sut.Handler = commandHandler;

            await sut.InvokeAsync($"exe {program} --bucket {bucket}");

            Assert.That(commandHandler.InvocationContext.ParseResult.ValueForOption(CommonOptions.BucketNameOption), Is.EqualTo(bucket));
        }
        public async Task Token_option_is_correctly_parsed_when_added(RunExeCommand sut, CommandHandlerSpy commandHandler, string program, string token)
        {
            sut.Handler = commandHandler;

            await sut.InvokeAsync($"exe {program} --token {token}");

            Assert.That(commandHandler.InvocationContext.ParseResult.ValueForOption(CommonOptions.TokenOption), Is.EqualTo(token));
        }