예제 #1
0
        public void AlarmoBot()
        {
            var alarmo = HearthEntityFactory.CreateCard <AlarmoBot>();

            alarmo.CurrentManaCost = 0;
            alarmo.Owner           = player;

            // First check base case where the hand does not contain any valid minions
            player.AddCardToHand(alarmo);
            player.PlayCard(alarmo, null);

            GameEngine.EndTurn();
            GameEngine.EndTurn();

            Assert.IsTrue(GameEngine.GameState.CurrentPlayerPlayZone.Contains(alarmo), "Verify alarmobot is still on the board");

            GameEngine.GameState.Board.RemoveCard(alarmo);

            var yeti       = HearthEntityFactory.CreateCard <ChillwindYeti>();
            var rag        = HearthEntityFactory.CreateCard <RagnarostheFirelord>();
            var azureDrake = HearthEntityFactory.CreateCard <AzureDrake>();
            var weapon     = HearthEntityFactory.CreateCard <FieryWarAxe>();
            var fireball   = HearthEntityFactory.CreateCard <Fireball>();

            player.AddCardsToHand(new List <BaseCard>()
            {
                yeti, rag, azureDrake, weapon, fireball, alarmo
            });

            player.PlayCard(alarmo, null);

            GameEngine.EndTurn();
            GameEngine.EndTurn();

            var expectedMinionsOnBoard = new List <BaseCard>()
            {
                yeti, rag, azureDrake
            };

            Assert.IsTrue(player.Hand.Contains(alarmo), "Verify alarmobot ended up back in hand");
            Assert.IsTrue(GameEngine.GameState.CurrentPlayerPlayZone.Any(expectedMinionsOnBoard.Contains), "Verify a random minion was placed on board");
        }