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"); }