public void PromptForMenuSelection_WhenUserSelectsNumberedOptionOutOfRange_RetryMessageDisplayed(string menuSelection, string expectedOutput, MenuSelection expectedMenuSelection) { //arrange expectedOutput = expectedOutput.Replace("{Environment.NewLine}", Environment.NewLine); IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); ((ConsoleWrapperMock)consoleWrapper).ReadKeyChars = menuSelection.ToCharArray().ToList(); Console.ForegroundColor = ConsoleColor.Gray; Console.BackgroundColor = ConsoleColor.Black; //act MenuSelection actualMenuSelection = wordSearchProgramHelper.PromptForMenuSelection(); string output = _consoleOuput.ToString(); //assert Assert.Equal(expectedMenuSelection, actualMenuSelection); Assert.Equal(expectedOutput, output); }
public void PromptForMenuSelection_WhenUserSelectsNumberedOptionInRange_CorrectNumberReturned(MenuSelection menuSelection) { //arrange IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); ((ConsoleWrapperMock)consoleWrapper).ReadKeyChar = ((int)menuSelection).ToString().ToCharArray().First(); Console.ForegroundColor = ConsoleColor.Gray; Console.BackgroundColor = ConsoleColor.Black; string expected = $"(1) Show solution{Environment.NewLine}(2) Enter a search word{Environment.NewLine}(3) Select another puzzle{Environment.NewLine}(4) Exit{Environment.NewLine}{Environment.NewLine}Enter selection: {(int)menuSelection}{Environment.NewLine}"; //act MenuSelection actualMenuSelection = wordSearchProgramHelper.PromptForMenuSelection(); string output = _consoleOuput.ToString(); //assert Assert.Equal(menuSelection, actualMenuSelection); Assert.Equal(expected, output); }