public Task Should_Return_Error_If_Custom_Validation_Fails()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushTextWithEnter("22");
            console.Input.PushTextWithEnter("102");
            console.Input.PushTextWithEnter("ABC");
            console.Input.PushTextWithEnter("99");

            // When
            console.Prompt(
                new TextPrompt <int>("Guess number:")
                .ValidationErrorMessage("Invalid input")
                .Validate(age =>
            {
                if (age < 99)
                {
                    return(ValidationResult.Error("Too low"));
                }
                else if (age > 99)
                {
                    return(ValidationResult.Error("Too high"));
                }

                return(ValidationResult.Success());
            }));

            // Then
            return(Verifier.Verify(console.Output));
        }
        public Task Should_Return_Validation_Error_If_Value_Cannot_Be_Converted()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushTextWithEnter("ninety-nine");
            console.Input.PushTextWithEnter("99");

            // When
            console.Prompt(new TextPrompt <int>("Age?"));

            // Then
            return(Verifier.Verify(console.Lines));
        }
示例#3
0
        public Task Should_Chose_Masked_Default_Value_If_Nothing_Is_Entered_And_Prompt_Is_Secret()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushKey(ConsoleKey.Enter);

            // When
            console.Prompt(
                new TextPrompt <string>("Favorite fruit?")
                .Secret()
                .DefaultValue("Banana"));

            // Then
            return(Verifier.Verify(console.Output));
        }
        public Task Should_Accept_Choice_In_List()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushTextWithEnter("Orange");

            // When
            console.Prompt(
                new TextPrompt <string>("Favorite fruit?")
                .AddChoice("Banana")
                .AddChoice("Orange")
                .DefaultValue("Banana"));

            // Then
            return(Verifier.Verify(console.Output));
        }
        public Task Should_Auto_Complete_To_First_Choice_If_Pressing_Tab_On_Empty_String()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushKey(ConsoleKey.Tab);
            console.Input.PushKey(ConsoleKey.Enter);

            // When
            console.Prompt(
                new TextPrompt <string>("Favorite fruit?")
                .AddChoice("Banana")
                .AddChoice("Orange")
                .DefaultValue("Banana"));

            // Then
            return(Verifier.Verify(console.Output));
        }
        public Task Should_Return_Error_If_An_Invalid_Choice_Is_Made()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushTextWithEnter("Apple");
            console.Input.PushTextWithEnter("Banana");

            // When
            console.Prompt(
                new TextPrompt <string>("Favorite fruit?")
                .AddChoice("Banana")
                .AddChoice("Orange")
                .DefaultValue("Banana"));

            // Then
            return(Verifier.Verify(console.Output));
        }
        public Task Should_Auto_Complete_To_Next_Choice_When_Pressing_Tab_On_A_Match()
        {
            // Given
            var console = new FakeConsole();

            console.Input.PushText("Apple");
            console.Input.PushKey(ConsoleKey.Tab);
            console.Input.PushKey(ConsoleKey.Enter);

            // When
            console.Prompt(
                new TextPrompt <string>("Favorite fruit?")
                .AddChoice("Apple")
                .AddChoice("Banana")
                .AddChoice("Orange"));

            // Then
            return(Verifier.Verify(console.Output));
        }