package org.mage.test.cards.watchers; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * * @author BetaSteward */ public class DiesExiledTest extends CardTestPlayerBase { /* * Kumano's Blessing * Enchantment — Aura, 2R (3) * Flash * Enchant creature * If a creature dealt damage by enchanted creature this turn would die, exile it instead. * */ // test that when creature damaged by enchanted creature dies it is exiled @Test public void testKumanosBlessing() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); addCard(Zone.HAND, playerA, "Kumano's Blessing"); addCard(Zone.BATTLEFIELD, playerA, "Prodigal Pyromancer"); addCard(Zone.BATTLEFIELD, playerB, "Sejiri Merfolk"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kumano's Blessing", "Prodigal Pyromancer"); activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: {source} deals 1 damage to target creature or player.", "Sejiri Merfolk"); setStopAt(1, PhaseStep.END_TURN); execute(); assertPermanentCount(playerB, "Sejiri Merfolk", 0); assertExileCount("Sejiri Merfolk", 1); } /* * Frostwielder * Creature — Human Shaman 1/2, 2RR (4) * {T}: Frostwielder deals 1 damage to target creature or player. * If a creature dealt damage by Frostwielder this turn would die, exile it instead. * */ // test that when creature damaged by Frostwielder dies it is exiled @Test public void testFrostwielder() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); addCard(Zone.BATTLEFIELD, playerA, "Frostwielder"); addCard(Zone.BATTLEFIELD, playerB, "Sejiri Merfolk"); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: {source} deals 1 damage to target creature or player.", "Sejiri Merfolk"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertPermanentCount(playerB, "Sejiri Merfolk", 0); assertExileCount("Sejiri Merfolk", 1); } /* * Kumano, Master Yamabushi * Legendary Creature — Human Shaman 4/4, 3RR (5) * {1}{R}: Kumano, Master Yamabushi deals 1 damage to target creature or player. * If a creature dealt damage by Kumano this turn would die, exile it instead. * */ // test that when creature damaged by Kumano, Master Yamabushi dies it is exiled @Test public void testKumanoMasterYamabushi() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); addCard(Zone.BATTLEFIELD, playerA, "Kumano, Master Yamabushi"); addCard(Zone.BATTLEFIELD, playerB, "Sejiri Merfolk"); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}{R}: {source} deals 1 damage to target creature or player.", "Sejiri Merfolk"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertPermanentCount(playerB, "Sejiri Merfolk", 0); assertExileCount("Sejiri Merfolk", 1); } /* * Yamabushi's Flame * Instant, 2R (3) * Yamabushi's Flame deals 3 damage to target creature or player. If a * creature dealt damage this way would die this turn, exile it instead. * */ // test that when creature damaged by Yamabushi's Flame dies it is exiled @Test public void testYamabushisFlame() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); addCard(Zone.HAND, playerA, "Yamabushi's Flame"); addCard(Zone.BATTLEFIELD, playerB, "Sejiri Merfolk"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Yamabushi's Flame", "Sejiri Merfolk"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertPermanentCount(playerB, "Sejiri Merfolk", 0); assertExileCount("Sejiri Merfolk", 1); } /* * Yamabushi's Storm * Sorcery, 1R (2) * Yamabushi's Storm deals 1 damage to each creature. If a creature dealt * damage this way would die this turn, exile it instead. * */ // test that when creatures damaged by Yamabushi's Storm die they are exiled @Test public void testYamabushisStorm() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); addCard(Zone.HAND, playerA, "Yamabushi's Storm"); addCard(Zone.BATTLEFIELD, playerB, "Sejiri Merfolk", 2); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Yamabushi's Storm"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertPermanentCount(playerB, "Sejiri Merfolk", 0); assertExileCount("Sejiri Merfolk", 2); } }