public void show_players_score_and_hand()
        {
            int     score;
            string  name = "John";
            string  output;
            IPlayer player = new HumanPlayer(name);
            ICard   card1  = new Card(Suit.Clubs, Rank.Ace);

            card1.Visible = false;
            ICard card2 = new Card(Suit.Hearts, Rank.Two);

            player.AddCardToHand(card1);
            player.AddCardToHand(card2);
            score  = 3;
            output = ops.GetScoreMessage(player);
            ops.DisplayMessage(output);
            output = ops.GetHandMessage(player.GetHand(), true);
            ops.DisplayMessage(output);
            Assert.AreEqual($"Player {player.GetName()}, Score={score}", mockConsoleIO.GetConsoleWrites()[0]);
            Assert.AreEqual("Ace of Clubs,Two of Hearts", mockConsoleIO.GetConsoleWrites()[1]);
            Assert.AreEqual(2, mockConsoleIO.GetConsoleWrites().Count);

            mockConsoleIO.ClearWriteConsole();
            ICard card3 = new Card(Suit.Hearts, Rank.Nine);

            player.AddCardToHand(card3);
            score  = 12;
            output = ops.GetScoreMessage(player);
            ops.DisplayMessage(output);
            output = ops.GetHandMessage(player.GetHand(), true);
            ops.DisplayMessage(output);
            Assert.AreEqual($"Player {player.GetName()}, Score={score}", mockConsoleIO.GetConsoleWrites()[0]);
            Assert.AreEqual("Ace of Clubs,Two of Hearts,Nine of Hearts", mockConsoleIO.GetConsoleWrites()[1]);
            Assert.AreEqual(2, mockConsoleIO.GetConsoleWrites().Count);

            mockConsoleIO.ClearWriteConsole();
            ICard card4 = new Card(Suit.Spades, Rank.Eight);

            player.AddCardToHand(card4);
            score  = 20;
            output = ops.GetScoreMessage(player);
            ops.DisplayMessage(output);
            output = ops.GetHandMessage(player.GetHand(), true);
            ops.DisplayMessage(output);
            Assert.AreEqual($"Player {player.GetName()}, Score={score}", mockConsoleIO.GetConsoleWrites()[0]);
            Assert.AreEqual("Ace of Clubs,Two of Hearts,Nine of Hearts,Eight of Spades", mockConsoleIO.GetConsoleWrites()[1]);
            Assert.AreEqual(2, mockConsoleIO.GetConsoleWrites().Count);

            Dependencies.consoleIO.reset();
        }
        public void allow_writeline_to_console()
        {
            mockConsoleIO.ClearWriteConsole();

            string output1 = "output data 1";
            string output2 = "output data 2";

            mockConsoleIO.WriteLine(output1);
            int writesCount1 = mockConsoleIO.GetConsoleWrites().Count;

            mockConsoleIO.WriteLine(output2);
            int writesCount2 = mockConsoleIO.GetConsoleWrites().Count;

            List <string> writes = mockConsoleIO.GetConsoleWrites();

            Assert.AreEqual <string>(output1, writes[0]);
            Assert.AreEqual <string>(output2, writes[1]);
            Assert.AreEqual(1, writesCount1);
            Assert.AreEqual(2, writesCount2);
        }