public void GetPuzzleFilePathsFromPuzzleDirectory_WhenPuzzleDirectoryExistsAndContainsFiles_ListOfFilePathsReturned() { //arrange WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, _fileOperations, _wordFinder, _searchOrientationManager); //act var filePaths = wordSearchProgramHelper.GetPuzzleFilePathsFromPuzzleDirectory(TestUtilities.TEST_PUZZLES_DIRECTORY, 9); //assert Assert.True(filePaths.Length == 2); }
public void WriteGridToConsole_WhenGridIsNull_ThrowArgumentException() { //arrange string expectedMessage = "grid is null."; string[,] grid = null; WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, null, null, null); //act & assert var exception = Assert.Throws <ArgumentException>(() => wordSearchProgramHelper.WriteGridToConsole(grid, ConsoleColor.Gray, ConsoleColor.Black)); Assert.Equal(expectedMessage, exception.Message); }
public void GetPuzzleFilePathsFromPuzzleDirectory_WhenPuzzleDirectoryDoesNotExist_ListOfFilePathsReturned() { //arrange string directory = "NODIRECTORY"; string fullPath = $"{_fileOperations.ApplicationBasePath("WordSearch")}{Path.DirectorySeparatorChar}{directory}"; string expectedMessage = $"directory does not exist: {fullPath}"; WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, _fileOperations, _wordFinder, _searchOrientationManager); //act & assert var exception = Assert.Throws <ArgumentException>(() => wordSearchProgramHelper.GetPuzzleFilePathsFromPuzzleDirectory(directory, 9)); Assert.Equal(expectedMessage, exception.Message); }
public void WriteTitle_ClearsConsoleAndWritesTitle() { //arrange string expected = $"<clear>---- Word Search ----{Environment.NewLine}{Environment.NewLine}"; IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(true); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); //act wordSearchProgramHelper.WriteTitle(); string output = _consoleOuput.ToString(); //assert Assert.Equal(expected, output); }
public void WriteGridToConsole_WhenGridArrayPassedIn_WritesArrayContentsToConsole(string gridSource, string expected) { //arrange expected = expected.Replace("{Environment.NewLine}", Environment.NewLine); string[,] grid = _testUtilities.StringToGrid(gridSource); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, null, null, null); //act wordSearchProgramHelper.WriteGridToConsole(grid, ConsoleColor.Gray, ConsoleColor.Black); var output = _consoleOuput.ToString(); //assert Assert.True(expected == output); }
public void ReadFileNumber_WhenUserFirstEntersInvalidNumber_UserIsPromptedToEnterAgain(int numFiles, string userInput, string expected) { //arrange expected = expected.Replace("{Environment.NewLine}", Environment.NewLine); IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); ((ConsoleWrapperMock)consoleWrapper).ReadKeyChars = userInput.ToCharArray().ToList(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); //act var userSelection = wordSearchProgramHelper.ReadFileNumberFromConsole(numFiles); string output = _consoleOuput.ToString(); //assert Assert.Equal(expected, output); Assert.Equal(userInput.Substring(userInput.Length - 1), userSelection.ToString()); }
public void WriteNumberedFileNamesToConsole_WhenWellFormedFilePathsArePassedIn_WritesNumberedFileNamesToConsole(string filePathDelimeteredArray, string expected) { //arrange expected = expected.Replace("{Environment.NewLine}", Environment.NewLine); string[] filePaths = filePathDelimeteredArray.Split('|'); Mock <IFileOperations> mockFileOperations = new Mock <IFileOperations>(); mockFileOperations.Setup(m => m.GetFileNameFromPath(It.IsAny <string>())).Returns(() => "file.txt"); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, mockFileOperations.Object, null, null); //act wordSearchProgramHelper.WriteNumberedFileNamesToConsole(filePaths); var output = _consoleOuput.ToString(); //assert Assert.Equal(expected, _consoleOuput.ToString()); }
public void GetSearchStringsAndGridFromPuzzleFile_WhenFileExistsInCorrectFormat_ReturnsFirstRowAsSearchStringAndAllOthersAsStringArray(string searchWords, string fileRowsDelimeteredArray, string puzzleFileName) { //arrange string workingDir = $"{_fileOperations.ApplicationBasePath(TestUtilities.APPLICATION_DIRECTORY)}{Path.DirectorySeparatorChar}{TEST_DIRECTORY}"; CreatePuzzleFile(workingDir, searchWords, fileRowsDelimeteredArray, puzzleFileName); //need to remove the commas to provide meaningful input to StringToGrid string[,] expectedGrid = _testUtilities.StringToGrid(fileRowsDelimeteredArray.Replace(",", "")); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, _fileOperations, _wordFinder, _searchOrientationManager); //act var(searchString, grid) = wordSearchProgramHelper.ConvertPuzzleFileToSearchWordsAndGrid($"{workingDir}{Path.DirectorySeparatorChar}{puzzleFileName}"); //assert Assert.Equal(searchWords, searchString); Assert.Equal(expectedGrid, grid); }
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); }
public void WriteNumberedFileNamesToConsole_WhenWellFormedFilePathIsPassedIn_WritesNumberedFileNameToConsole() { //arrange string fileName = "EvilMorty.txt"; string expected = $"(1) {fileName}{Environment.NewLine}"; string[] filePaths = new string[1]; Mock <IFileOperations> mockFileOperations = new Mock <IFileOperations>(); mockFileOperations.Setup(m => m.GetFileNameFromPath(It.IsAny <string>())).Returns(() => fileName); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, mockFileOperations.Object, null, null); //act wordSearchProgramHelper.WriteNumberedFileNamesToConsole(filePaths); var output = _consoleOuput.ToString(); //assert Assert.True(expected == output); }
public void GetPuzzleFilePathsFromPuzzleDirectory_WhenPuzzleDirectoryDoesNotExist_ListOfFilePathsReturned() { //arrange Mock <IFileOperations> mockFileOperations = new Mock <IFileOperations>(); string applicationBasePath = "basePath"; bool directoryExists = false; mockFileOperations.Setup(m => m.ApplicationBasePath(It.IsAny <string>(), It.IsAny <string>())).Returns(() => applicationBasePath); mockFileOperations.Setup(m => m.DirectoryExists(It.IsAny <string>())).Returns(() => directoryExists); string directory = "NODIRECTORY"; string fullPath = $"{applicationBasePath}{Path.DirectorySeparatorChar}{directory}"; string expectedMessage = $"directory does not exist: {fullPath}"; WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, mockFileOperations.Object, null, null); //act & assert var exception = Assert.Throws <ArgumentException>(() => wordSearchProgramHelper.GetPuzzleFilePathsFromPuzzleDirectory(directory, 9)); Assert.Equal(expectedMessage, exception.Message); }
public void GetPuzzleFilePathsFromPuzzleDirectory_WhenPuzzleDirectoryExistsAndContainsFiles_ListOfFilePathsReturned() { //arrange Mock <IFileOperations> mockFileOperations = new Mock <IFileOperations>(); string applicationBasePath = "basePath"; bool directoryExists = true; string[] directoryContents = new string[] { "one.txt", "two.txt", "three.txt" }; mockFileOperations.Setup(m => m.ApplicationBasePath(It.IsAny <string>(), It.IsAny <string>())).Returns(() => applicationBasePath); mockFileOperations.Setup(m => m.DirectoryExists(It.IsAny <string>())).Returns(() => directoryExists); mockFileOperations.Setup(m => m.GetSortedDirectoryContents(It.IsAny <string>())).Returns(() => directoryContents); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(_consoleWrapper, mockFileOperations.Object, null, null); //act var filePaths = wordSearchProgramHelper.GetPuzzleFilePathsFromPuzzleDirectory(TestUtilities.TEST_PUZZLES_DIRECTORY, 9); //assert Assert.Equal(directoryContents, filePaths); }
public void WriteGridToConsole_WhenGridArrayAndHighlightCoordinatesPassedIn_WritesArrayContentsToConsoleWithColorChanges(string gridSource, int xcoord, int ycoord, string expected) { //arrange expected = expected.Replace("{Environment.NewLine}", Environment.NewLine); string[,] grid = _testUtilities.StringToGrid(gridSource); IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); Console.ForegroundColor = ConsoleColor.Gray; Console.BackgroundColor = ConsoleColor.Black; //act wordSearchProgramHelper.WriteGridToConsole(grid, ConsoleColor.Gray, ConsoleColor.Black, new PointList() { new Point(xcoord, ycoord) }); var output = _consoleOuput.ToString(); //assert Assert.Equal(expected, output); }
public void PromptForSearchWord_WhenUserEntersWord_PromptDisplayedAndWordReturned(string searchWord) { //arrange string expected = $"Enter a search word to find in puzzle or hit <enter> to return to the menu{Environment.NewLine}{Environment.NewLine}Search word: {searchWord}{Environment.NewLine}"; IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); ((ConsoleWrapperMock)consoleWrapper).ReadLineResults = new List <string>() { searchWord }; Console.ForegroundColor = ConsoleColor.Gray; Console.BackgroundColor = ConsoleColor.Black; //act string searchWordOut = wordSearchProgramHelper.PromptForSearchWord(); string output = _consoleOuput.ToString(); //assert Assert.Equal(searchWord, searchWordOut); Assert.Equal(expected, output); }
public void SetConsoleColors_WhenColorsAreSameAsCurrentColors_ColorsAreNotChanged() { //arrange var fg = Console.ForegroundColor; var bg = Console.BackgroundColor; string expected = ""; Console.BackgroundColor = ConsoleColor.DarkBlue; Console.ForegroundColor = ConsoleColor.Blue; IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); //act wordSearchProgramHelper.SetConsoleColors(ConsoleColor.Blue, ConsoleColor.DarkBlue); string output = _consoleOuput.ToString(); //assert Assert.Equal(expected, output); Console.ForegroundColor = fg; Console.BackgroundColor = bg; }
public void SetConsoleColors_WhenOnlyForegroundColorsIsDifferentToCurrentColor_OnlyForegroundColorChanged() { //arrange var fg = Console.ForegroundColor; var bg = Console.BackgroundColor; string expected = "<fg:Cyan>"; Console.BackgroundColor = ConsoleColor.DarkBlue; Console.ForegroundColor = ConsoleColor.Blue; IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, null, null, null); //act wordSearchProgramHelper.SetConsoleColors(ConsoleColor.Cyan, ConsoleColor.DarkBlue); string output = _consoleOuput.ToString(); //assert Assert.Equal(expected, output); Console.ForegroundColor = fg; Console.BackgroundColor = bg; }
public void WriteSolvedPuzzleCoordinatesToConsole_WhenSearchWordFound_CoordinatesWrittenToConsole(string searchWords, string fileRowsDelimeteredArray, string puzzleFileName, string expected) { //arrange expected = expected.Replace("{Environment.NewLine}", Environment.NewLine); string workingDir = $"{_fileOperations.ApplicationBasePath(TestUtilities.APPLICATION_DIRECTORY)}{Path.DirectorySeparatorChar}{TEST_DIRECTORY}"; CreatePuzzleFile(workingDir, searchWords, fileRowsDelimeteredArray, puzzleFileName); IConsoleWrapper consoleWrapper = new ConsoleWrapperMock(); WordSearchProgramHelper wordSearchProgramHelper = new WordSearchProgramHelper(consoleWrapper, _fileOperations, _wordFinder, _searchOrientationManager); Console.ForegroundColor = ConsoleColor.Gray; Console.BackgroundColor = ConsoleColor.Black; //act var(searchString, grid) = wordSearchProgramHelper.ConvertPuzzleFileToSearchWordsAndGrid($"{workingDir}{Path.DirectorySeparatorChar}{puzzleFileName}"); IGridManager gridManager = new GridManager(grid); wordSearchProgramHelper.WriteSolvedPuzzleCoordinatesToConsole(searchString, gridManager); var output = _consoleOuput.ToString(); //assert Assert.True(expected == _consoleOuput.ToString()); }