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);
        }
        public void parse_action_valid_single_char_typed_lowercase_custom()
        {
            Dependencies.consoleIO.ConstantValue = mockConsoleIO;
            mockConsoleIO.ResetConsole();
            mockConsoleIO.LoadReadValue("h");
            mockConsoleIO.LoadReadValue("s");
            mockConsoleIO.LoadReadValue("b");

            IPlayer      player = new HumanPlayer();
            PlayerAction action = player.NextAction(null);

            Assert.AreEqual(PlayerAction.Hit, action);
            action = player.NextAction(null);
            Assert.AreEqual(PlayerAction.Stand, action);
            action = player.NextAction(null);
            Assert.AreEqual(PlayerAction.Busted, action);
            Assert.AreEqual(3, mockConsoleIO.GetConsoleWrites().Count);

            Dependencies.consoleIO.reset();
        }
        public void show_players_cards_custom()
        {
            string  output;
            string  name   = "John";
            IPlayer player = new HumanPlayer(name);
            ICard   card1  = new Card(Suit.Clubs, Rank.Ace);
            ICard   card2  = new Card(Suit.Hearts, Rank.Two);

            player.AddCardToHand(card1);
            player.AddCardToHand(card2);

            output = ops.GetHandHeaderMessage(player);
            ops.DisplayMessage(output);
            output = ops.GetHandMessage(player.GetHand(), true);
            ops.DisplayMessage(output);
            Assert.AreEqual($"Player {name} has: ", mockConsoleIO.GetConsoleWrites()[0]);
            Assert.AreEqual("Ace of Clubs,Two of Hearts", mockConsoleIO.GetConsoleWrites()[1]);
            Assert.AreEqual(2, mockConsoleIO.GetConsoleWrites().Count);

            Dependencies.consoleIO.reset();
        }
Esempio n. 4
0
        public void play_a_simulated_game_player_wins()
        {
            //Dependencies.randomSeeds.ConstantValue = 1234;
            Dependencies.randomInstance.ConstantValue = new Random(1234);

            mockConsoleIO.LoadReadValue("S");

            BlackjackGame game       = new BlackjackGame();
            string        playerName = "Billy Joel";
            Dealer        dealer     = new Dealer();
            IPlayer       player     = new HumanPlayer(playerName);
            IDeck         deck       = BlackjackOperations.GetAndShuffleNewDeck();

            game.play(deck, dealer, player);

            int i = 0;

            Assert.AreEqual($"Player {playerName}, Score=18", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Eight of Hearts,Queen of Hearts", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Dealer Score Showing=4", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"{Hand.FACEDOWN},Four of Clubs", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Enter Action H)it, S)tand, B)ust:", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Player {playerName} Action=Stand", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Dealer Action=Hit", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"{Hand.FACEDOWN},Four of Clubs,Two of Spades", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Dealer Action=Hit", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"{Hand.FACEDOWN},Four of Clubs,Two of Spades,Ace of Diamonds", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Dealer Action=Hit", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Dealer Action=Busted", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"{Hand.FACEDOWN},Four of Clubs,Two of Spades,Ace of Diamonds,Six of Spades", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"{playerName} wins!", mockConsoleIO.GetConsoleWrites()[i++]);

            Assert.AreEqual($"Player {playerName}, Score=18", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Eight of Hearts,Queen of Hearts", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Dealer Score Showing=23", mockConsoleIO.GetConsoleWrites()[i++]);
            Assert.AreEqual($"Ten of Hearts,Four of Clubs,Two of Spades,Ace of Diamonds,Six of Spades", mockConsoleIO.GetConsoleWrites()[i++]);
            Dependencies.consoleIO.reset();
            //Dependencies.randomSeeds.reset();
            Dependencies.randomInstance.reset();
        }