public void TakeTurn_GivenGameStateInProgress_ReturnsGameStateInProgress()
        {
            _consoleWrapper.Setup(x => x.ReadLine()).Returns(It.IsAny <string>());
            _inputService.Setup(x => x.HandleInput(It.IsAny <string>(), It.IsAny <char>())).Returns(true);
            _resultService.Setup(x => x.CurrentState()).Returns(GameState.InProgress);


            var sut = _turnService.TakeTurn('X');

            Assert.That(sut, Is.EqualTo(GameState.InProgress));
        }
        public bool Play()
        {
            var gameState = GameState.InProgress;

            SetUpNewGame();
            while (gameState == GameState.InProgress)
            {
                gameState = _turnService.TakeTurn(_currentPlayer);
                if (gameState == GameState.InProgress)
                {
                    SwapPlayer();
                }
            }

            if (gameState == GameState.Win)
            {
                Console.WriteLine("Congratulations! Player {0} wins!", _currentPlayer);
            }

            if (gameState == GameState.Draw)
            {
                Console.WriteLine("Draw! Better luck next time!");
            }

            return(true);
        }