public void ConsoleViewRunEmitsInputOnNonEmptyLineInput() { bool isCalled = false; ConsoleView view = new ConsoleView(); view.Input += (input) => isCalled = true; ConsoleInputter.Clear(); ConsoleInputter.WriteLine("User input"); ConsoleInputter.WriteLine(); view.Run(); Assert.IsTrue(isCalled, "The ConsoleView.Run event was never emitted"); // TestTools Code UnitTest test = Factory.CreateTest(); TestVariable <ConsoleView> _view = test.CreateVariable <ConsoleView>(); test.Arrange(_view, Expr(() => new ConsoleView())); test.DelegateAssert.IsInvoked(Lambda <InputHandler>(handler => Expr(_view, v => v.AddInput(handler)))); test.Act(Expr(() => ConsoleInputter.Clear())); test.Act(Expr(() => ConsoleInputter.WriteLine("User input"))); test.Act(Expr(() => ConsoleInputter.WriteLine())); test.Act(Expr(_view, v => v.Run())); test.Execute(); }
static void Main() { bool isWorking = true; IOutputter outputter = new ConsoleOutputter(); IInputter inputter = new ConsoleInputter(); ValueArray array = new ValueArray(outputter); while (isWorking) { try { outputter.WriteLine(PreparedStrings.InputValue); foreach (var value in Enum.GetValues(typeof(InputType))) { string str = Format(PreparedStrings.EnumToString, (int)value, value); outputter.WriteLine(str); } string line = inputter.Read(); if (!Enum.TryParse(line, out InputType parsed)) { outputter.WriteLine(PreparedStrings.WrongInput); continue; } switch (parsed) { case InputType.WriteString: array.AddValue(inputter.Read()); break; case InputType.ShowResult: array.ShowResult(); break; case InputType.Exit: isWorking = false; break; default: outputter.WriteLine(PreparedStrings.WrongEnum); break; } } catch (Exception ex) { outputter.WriteLine(ex.Message); } finally { outputter.WriteLine(PreparedStrings.EndOfBlock); } } }
public void ConsoleViewRunReturnsOnEmptyLineInput() { // MSTest Extended ConsoleView view = new ConsoleView(); ConsoleInputter.Clear(); ConsoleInputter.WriteLine(); view.Run(); // TestTools Code UnitTest test = Factory.CreateTest(); TestVariable <ConsoleView> _view = test.CreateVariable <ConsoleView>(); test.Arrange(_view, Expr(() => new ConsoleView())); test.Act(Expr(() => ConsoleInputter.Clear())); test.Act(Expr(() => ConsoleInputter.WriteLine())); test.Act(Expr(_view, v => v.Run())); test.Execute(); }