示例#1
0
        public void TestThatErrorsAreIgnoredWithNoErrorWriter()
        {
            var reader = Substitute.For <IConsoleReader>();
            var client = new ConsoleLoopClient(reader);

            client.OnError("Hello");
        }
示例#2
0
        public void TestThatConstructorGeneratesPlausibleClient()
        {
            var reader = Substitute.For <IConsoleReader>();
            var client = new ConsoleLoopClient(reader);

            client.Reader.Should().BeSameAs(reader);
        }
        public void Constructor()
        {
            var reader = Substitute.For <IConsoleReader>();
            var client = new ConsoleLoopClient(reader);

            client.Reader.Should().BeSameAs(reader);
        }
示例#4
0
        public void TestThatStoredTokenCompleterIsRetrievable()
        {
            var reader    = Substitute.For <IConsoleReader>();
            var completer = Substitute.For <ITokenCompleter>();

            var client = new ConsoleLoopClient(reader);

            client.TokenCompleter = completer;

            client.TokenCompleter.Should().BeSameAs(completer);
        }
示例#5
0
        public void TestThatReadLineWorksAsExpected()
        {
            const string lineText = "The line that was read.";

            var reader    = Substitute.For <IConsoleReader>();
            var lineInput = Substitute.For <IConsoleLineInput>();

            reader.LineInput.Returns(lineInput);
            reader.ReadLine().Returns(lineText);

            var client = new ConsoleLoopClient(reader);

            client.ReadLine().Should().Be(lineText);
            reader.Received(1).ReadLine();
        }
示例#6
0
        public void TestThatErrorWriterReceivesError()
        {
            const string errorText = "Hello, errors!";

            var reader = Substitute.For <IConsoleReader>();
            var output = Substitute.For <IConsoleOutput>();

            reader.ConsoleOutput.Returns(output);

            var client = new ConsoleLoopClient(reader);

            client.OnError(errorText);

            output.Received().Write(
                Arg.Is <ColoredString>(cs => cs.Content.Equals(errorText + Environment.NewLine)));
        }
        public void ErrorWriterReceivesError()
        {
            const string errorText = "Hello, errors!";

            var reader = Substitute.For <IConsoleReader>();

            var sb = new StringBuilder();

            using (var errorWriter = new StringWriter(sb))
            {
                var client = new ConsoleLoopClient(reader, errorWriter);
                client.OnError(errorText);
            }

            sb.ToString().Should().Be(errorText + Environment.NewLine);
        }
示例#8
0
        public void TestThatPromptsAreObserved()
        {
            const string prompt = "[Prompt!] ";

            var reader    = Substitute.For <IConsoleReader>();
            var lineInput = Substitute.For <IConsoleLineInput>();

            lineInput.Prompt = prompt;
            reader.LineInput.Returns(lineInput);

            var client = new ConsoleLoopClient(reader);

            client.Prompt.Should().Be(prompt);

            const string newPrompt = "NewPrompt";

            client.Prompt = newPrompt;
            client.Prompt.Should().Be(newPrompt);
            lineInput.Prompt.ToString().Should().Be(newPrompt);

            client.DisplayPrompt();
            lineInput.Received(1).DisplayPrompt();
        }
示例#9
0
        public void TestThatColoredPromptsAreObserved()
        {
            var prompt = new ColoredString("[Prompt!] ", ConsoleColor.Cyan);

            var reader    = Substitute.For <IConsoleReader>();
            var lineInput = Substitute.For <IConsoleLineInput>();

            lineInput.Prompt = prompt;
            reader.LineInput.Returns(lineInput);

            var client = new ConsoleLoopClient(reader);

            client.Prompt.Should().Be(prompt);

            var newPrompt = new ColoredString("NewPrompt", ConsoleColor.Green);

            client.PromptWithColor = newPrompt;
            client.PromptWithColor.Should().Be(newPrompt);
            client.Prompt.Should().Be(newPrompt.ToString());
            lineInput.Prompt.Should().Be(newPrompt);

            client.DisplayPrompt();
            lineInput.Received(1).DisplayPrompt();
        }