package org.mage.test.cards.single; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * * @author BetaSteward */ public class GravecrawlerTest extends CardTestPlayerBase { /* Cryptoplasm * Creature — Shapeshifter 2/2, 1UU * At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. * * * Creature — Zombie 2/1, B * Gravecrawler can't block. * You may cast Gravecrawler from your graveyard as long as you control a Zombie. */ @Test public void testCard() { addCard(Zone.GRAVEYARD, playerA, "Gravecrawler"); addCard(Zone.BATTLEFIELD, playerA, "Black Cat"); addCard(Zone.BATTLEFIELD, playerA, "Swamp"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Gravecrawler"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertLife(playerA, 20); assertLife(playerB, 20); assertPermanentCount(playerA, "Gravecrawler", 1); assertGraveyardCount(playerA, 0); } @Test public void testCard1() { addCard(Zone.GRAVEYARD, playerA, "Gravecrawler"); addCard(Zone.BATTLEFIELD, playerA, "Swamp"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Gravecrawler"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertLife(playerA, 20); assertLife(playerB, 20); assertPermanentCount(playerA, "Gravecrawler", 0); assertGraveyardCount(playerA, 1); } /* * Elite Vanguard * Creature — Human Soldier 2/1, W * * Fervor English * Enchantment, 2R (3) * Creatures you control have haste. (They can attack and {T} as soon as they come under your control.) */ @Test public void testCopiedCantBlockAbilityWorks() { addCard(Zone.BATTLEFIELD, playerA, "Island", 3); addCard(Zone.HAND, playerA, "Cryptoplasm"); addCard(Zone.BATTLEFIELD, playerA, "Fervor"); addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard"); addCard(Zone.BATTLEFIELD, playerB, "Gravecrawler"); addCard(Zone.BATTLEFIELD, playerB, "Llanowar Elves"); addTarget(playerA, "Gravecrawler"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cryptoplasm"); attack(3, playerA, "Elite Vanguard"); block(3, playerB, "Gravecrawler", "Elite Vanguard"); attack(4, playerB, "Llanowar Elves"); block(4, playerA, "Gravecrawler", "Llanowar Elves"); setStopAt(4, PhaseStep.END_TURN); execute(); assertPermanentCount(playerA, "Gravecrawler", 1); assertPermanentCount(playerB, "Gravecrawler", 1); assertLife(playerB, 18); assertLife(playerA, 19); } @Test public void testCantBlockAbilityAfterChangeZone() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); addCard(Zone.BATTLEFIELD, playerA, "Fervor"); addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard"); addCard(Zone.HAND, playerA, "Lightning Bolt"); addCard(Zone.BATTLEFIELD, playerB, "Swamp", 1); addCard(Zone.BATTLEFIELD, playerB, "Gravecrawler"); addCard(Zone.BATTLEFIELD, playerB, "Walking Corpse"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", "Gravecrawler"); castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Gravecrawler"); attack(3, playerA, "Elite Vanguard"); block(3, playerB, "Gravecrawler", "Elite Vanguard"); setStopAt(3, PhaseStep.END_TURN); execute(); assertPermanentCount(playerB, "Gravecrawler", 1); assertLife(playerB, 18); } }