public void TestControllerAddPlayerShouldExecuteCorrectly()
        {
            var grid = this.GridMock();
            var view = this.ViewMock();
            var timer = this.TimerMock();
            var players = new List<MinesweeperPlayer>();
            var controller = new MinesweeperGameController(
                grid.Object,
                view.Object,
                timer.Object,
                players,
                MinesweeperDifficultyType.Easy);
            var args = new MinesweeperAddPlayerEventArgs { PlayerName = "test" };

            this.isScoreBoardDisplayed = false;
            view.Raise(e => e.AddPlayerEvent += null, args);

            Assert.AreEqual(players[0].Name, "test", "Player not added!");
        }
        /// <summary>
        /// The display game over.
        /// </summary>
        /// <param name="gameResult">
        /// The game result.
        /// </param>
        public void DisplayGameOver(bool gameResult)
        {
            if (gameResult == false)
            {
                var gameOverBox = new ConsoleBox<ConsoleColor>(
                    25,
                    10,
                    14,
                    5,
                    ConsoleColor.Red,
                    ConsoleColor.Black,
                    "Game Over!");

                ConsolePrinter.Print(this.consoleWrpView, gameOverBox);
                this.consoleWrpView.ReadKey(true);
                ConsoleMenus.StartMainMenu(this.consoleWrpView);
            }
            else
            {
                var gameOverBox = new ConsoleBox<ConsoleColor>(
                    15,
                    10,
                    30,
                    5,
                    ConsoleColor.Green,
                    ConsoleColor.Black,
                    "Enter your name: ");

                ConsolePrinter.Print(this.consoleWrpView, gameOverBox);
                var name = this.consoleWrpView.ReadLine();

                var args = new MinesweeperAddPlayerEventArgs { PlayerName = name };

                this.AddPlayerEvent.Invoke(this, args);

                ConsoleMenus.StartMainMenu(this.consoleWrpView);
            }
        }
        /// <summary>
        /// The player add.
        /// </summary>
        /// <param name="name">
        /// The player name.
        /// </param>
        private void PlayerAdd(string name)
        {
            var movesLabel = (Label)this.win.FindName("ScoreLabel");
            var timeLabel = (Label)this.win.FindName("TimeLabel");

            if (movesLabel == null || timeLabel == null)
            {
                throw new NullReferenceException("Move or time labels are not available!");
            }

            var args = new MinesweeperAddPlayerEventArgs { PlayerName = name };

            if (this.AddPlayerEvent != null)
            {
                this.AddPlayerEvent.Invoke(this, args);
            }
        }