package org.mage.test.cards.control; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.game.permanent.Permanent; import org.junit.Assert; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * @author noxx */ public class BattlefieldTriggeredAbilitiesTest extends CardTestPlayerBase { @Test public void testBeguilerofWillsAndPrimevalTitan() { // Whenever Primeval Titan enters the battlefield or attacks, you may search your library for up to two land cards, // put them onto the battlefield tapped, then shuffle your library. addCard(Zone.BATTLEFIELD, playerA, "Primeval Titan"); addCard(Zone.LIBRARY, playerA, "Mountain", 10); // {T}: Gain control of target creature with power less than or equal to the number of creatures you control. addCard(Zone.BATTLEFIELD, playerB, "Beguiler of Wills"); // Whenever Arrogant Bloodlord blocks or becomes blocked by a creature with power 1 or less, destroy Arrogant Bloodlord at end of combat. addCard(Zone.BATTLEFIELD, playerB, "Arrogant Bloodlord", 5); addCard(Zone.LIBRARY, playerB, "Mountain", 10); activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerB, "{T}: Gain control", "Primeval Titan"); attack(4, playerB, "Primeval Titan"); setStopAt(4, PhaseStep.END_TURN); execute(); assertLife(playerA, 14); assertLife(playerB, 20); assertPermanentCount(playerB, "Beguiler of Wills", 1); assertPermanentCount(playerB, "Arrogant Bloodlord", 5); assertPermanentCount(playerB, "Primeval Titan", 1); // lands weren't added to playerA assertPermanentCount(playerA, "Mountain", 0); // but to playerB instead int playerACount = 0; int playerBCount = 0; for (Permanent p : currentGame.getBattlefield().getAllActivePermanents()) { if (p.isLand()) { if (p.getControllerId().equals(playerB.getId())) { playerBCount++; } if (p.getControllerId().equals(playerA.getId())) { playerACount++; } } } Assert.assertEquals(0, playerACount); Assert.assertEquals(2, playerBCount); } }