public void GetCoordinatesOfSearchTarget_WhenSearchOrientationsNull_ThrowsException()
        {
            //arrange
            string      expectedMessage = "no SearchOrientations have been set in WordFinder.";
            IWordFinder wordFinder      = new WordFinder();

            //act & assert
            var exception = Assert.Throws <Exception>(() => wordFinder.GetCoordinatesOfSearchTarget("target"));

            Assert.Equal(expectedMessage, exception.Message);
        }
        public void GetCoordinatesOfSearchTarget_NxNGridDoesNotContainsTarget_NotFoundMessageReturned(string gridSource, string searchTarget, string expected)
        {
            //arrange
            IGridManager gridManager = new GridManager(_testUtilities.StringToGrid(gridSource));

            //act
            IWordFinder wordFinder = new WordFinder(_searchOrientationManager.GetSearchOrientations(gridManager));
            string      actual     = wordFinder.GetCoordinatesOfSearchTarget(searchTarget, expected).ToString();

            //assert
            Assert.Equal(expected, actual);
        }
        public void GetCoordinatesOfSearchTarget_NxNGridContainsTargetInBottomTopOrientationDueToColumnEdgesJoined_CoordinatesReturned(string gridSource, string searchTarget, string expected)
        {
            //arrange
            IGridManager gridManager = new GridManager(_testUtilities.StringToGrid(gridSource));

            //act
            IWordFinder wordFinder = new WordFinder(_searchOrientationManager.GetSearchOrientations(gridManager));
            string      actual     = wordFinder.GetCoordinatesOfSearchTarget(searchTarget, "Not found.").ToString();

            //assert
            Assert.Equal(expected, actual);
        }
        public void GetCoordinatesOfSearchTarget_SearchTargetFound_ReturnsResultOfSearchOrientationGetCoords()
        {
            //arrange
            string expected = "(10,10)";
            Mock <ISearchOrientation> mock = new Mock <ISearchOrientation>();

            mock.Setup(m => m.IsSearchTargetFound(It.IsAny <string>())).Returns(true);
            mock.Setup(m => m.GetCoordinatesOfSearchTarget(It.IsAny <string>())).Returns(new PointList()
            {
                new Point(10, 10)
            });

            //act
            IWordFinder wordFinder = new WordFinder(new List <ISearchOrientation>()
            {
                { mock.Object }
            });
            string actual = wordFinder.GetCoordinatesOfSearchTarget("", "Not found.").ToString();

            //assert
            Assert.Equal(expected, actual);
        }