public void PlayWhileNotEndGame() { MagicSquare magicSquare = GetMagicSquare(out MagicSquareContext magicSquareContext); magicSquareContext.GameDriver.SetupSequence(gd => gd.Play(It.IsAny <Board>())) .Returns(GameFlow.NEW_GAME) .Returns(GameFlow.KEEP_PLAYING) .Returns(GameFlow.END_GAME); magicSquare.Play(); magicSquareContext.GameDriver.Verify(gd => gd.Play(It.IsAny <Board>()), Times.Exactly(3)); magicSquareContext.BoardSizeReadingBoardFactory.Verify(bsrbf => bsrbf.GetBoard(), Times.Exactly(3)); magicSquareContext.IO.Verify(io => io.Clear(), Times.Once); magicSquareContext.IO.Verify(io => io.WriteLine(It.IsAny <string>(), It.IsAny <int>()), Times.Once); }