package org.mage.test.cards.single.soi; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * {3}{U} Instant * Return to their owners' hands all creatures with toughness less than or equal to the number of Islands you control. * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) */ public class EngulfTheShoreTest extends CardTestPlayerBase { /** * Basic test. */ @Test public void testBasicCreatures() { addCard(Zone.BATTLEFIELD, playerA, "Island", 2); addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears", 2); addCard(Zone.BATTLEFIELD, playerB, "Bronze Sable", 2); addCard(Zone.BATTLEFIELD, playerB, "Hill Giant", 1); addCard(Zone.HAND, playerA, "Engulf the Shore", 1); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Engulf the Shore"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertHandCount(playerA, "Grizzly Bears", 2); assertHandCount(playerB, "Bronze Sable", 2); assertPermanentCount(playerB, "Hill Giant", 1); assertGraveyardCount(playerA, "Engulf the Shore", 1); } /** * Reported bug with token creatures: * "Engulf the Shore does not remove Vampire tokens created with Call the Bloodline." * * NOTE: currently test fails due to issue with not bouncing the tokens */ @Test public void testTokenCreatures() { addCard(Zone.BATTLEFIELD, playerA, "Island", 2); addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); addCard(Zone.BATTLEFIELD, playerA, "Bronze Sable", 2); addCard(Zone.HAND, playerA, "Engulf the Shore", 1); addCard(Zone.HAND, playerB, "Hordeling Outburst", 1); addCard(Zone.BATTLEFIELD, playerB, "Mountain", 3); addCard(Zone.BATTLEFIELD, playerB, "Hill Giant", 1); castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Hordeling Outburst"); castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "Engulf the Shore"); setStopAt(2, PhaseStep.END_TURN); execute(); assertHandCount(playerA, "Bronze Sable", 2); assertPermanentCount(playerB, "Hill Giant", 1); assertPermanentCount(playerB, "Goblin", 0); assertGraveyardCount(playerA, "Engulf the Shore", 1); assertGraveyardCount(playerB, "Hordeling Outburst", 1); } }