package org.mage.test.cards.emblems; import mage.cards.Card; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.counters.CounterType; import org.junit.Assert; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * @author noxx */ public class EmblemsTest extends CardTestPlayerBase { /** * Venser The Sojourner: -8: You get an emblem with "Whenever you cast a * spell, exile target permanent." */ @Test public void testVenserTheSojournerEmblem() { addCard(Zone.BATTLEFIELD, playerA, "Venser, the Sojourner"); addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); addCard(Zone.HAND, playerA, "Lightning Bolt", 1); addCard(Zone.BATTLEFIELD, playerB, "Elite Vanguard"); addCounters(1, PhaseStep.UPKEEP, playerA, "Venser, the Sojourner", CounterType.LOYALTY, 5); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-8: You get an emblem"); castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB); setStopAt(1, PhaseStep.END_TURN); execute(); assertLife(playerB, 17); assertGraveyardCount(playerA, "Venser, the Sojourner", 1); assertEmblemCount(playerA, 1); // should be exiled using emblem ability assertPermanentCount(playerB, "Elite Vanguard", 0); } /** * Sorin, Lord of Innistrad: -2: You get an emblem with "Creatures you * control get +1/+0." */ @Test public void testSorinLordOfInnistradEmblem() { addCard(Zone.BATTLEFIELD, playerA, "Sorin, Lord of Innistrad"); addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard"); addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); addCard(Zone.HAND, playerA, "Elite Inquisitor"); addCard(Zone.BATTLEFIELD, playerB, "Llanowar Elves"); addCounters(1, PhaseStep.UPKEEP, playerA, "Sorin, Lord of Innistrad", CounterType.LOYALTY, 1); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-2: You get an emblem"); activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "-2: You get an emblem"); castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Elite Inquisitor"); setStopAt(3, PhaseStep.END_COMBAT); execute(); assertGraveyardCount(playerA, "Sorin, Lord of Innistrad", 1); assertEmblemCount(playerA, 2); assertPowerToughness(playerA, "Elite Vanguard", 4, 1); assertPowerToughness(playerA, "Elite Inquisitor", 4, 2); assertPowerToughness(playerB, "Llanowar Elves", 1, 1); } /** * Tamiyo, the Moon Sage: -8: You get an emblem with "You have no maximum * hand size" and "Whenever a card is put into your graveyard from anywhere, * you may return it to your hand." * * Tests "You have no maximum hand size" */ @Test public void testTamiyoTheMoonSageFirstEmblem() { addCard(Zone.BATTLEFIELD, playerA, "Tamiyo, the Moon Sage"); addCard(Zone.HAND, playerA, "Mountain", 10); addCounters(1, PhaseStep.UPKEEP, playerA, "Tamiyo, the Moon Sage", CounterType.LOYALTY, 4); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-8: You get an emblem"); setStopAt(2, PhaseStep.UPKEEP); execute(); assertEmblemCount(playerA, 1); assertHandCount(playerA, 10); } /** * Tamiyo, the Moon Sage: -8: You get an emblem with "You have no maximum * hand size" and "Whenever a card is put into your graveyard from anywhere, * you may return it to your hand." * * Tests "Whenever a card is put into your graveyard from anywhere, you may * return it to your hand." */ @Test public void testTamiyoTheMoonSageSecondEmblem() { addCard(Zone.BATTLEFIELD, playerA, "Tamiyo, the Moon Sage"); addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard"); addCard(Zone.BATTLEFIELD, playerB, "Mountain"); addCard(Zone.HAND, playerB, "Lightning Bolt"); addCounters(1, PhaseStep.UPKEEP, playerA, "Tamiyo, the Moon Sage", CounterType.LOYALTY, 4); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-8: You get an emblem"); castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Elite Vanguard"); setStopAt(2, PhaseStep.BEGIN_COMBAT); execute(); assertEmblemCount(playerA, 1); assertPermanentCount(playerA, "Elite Vanguard", 0); assertHandCount(playerA, 1); boolean found = false; for (Card card : playerA.getHand().getCards(currentGame)) { if (card.getName().equals("Elite Vanguard")) { found = true; } } Assert.assertTrue("Couldn't find a card in hand: Elite Vanguard", found); } /** * Liliana, Defiant Necromancer: -8: You get an emblem with "Whenever a * creature dies, return it to the battlefield under your control at the * beginning of the next end step."; * * Tests "Whenever a creature dies, return it to the battlefield under your * control at the beginning of the next end step." */ @Test public void testLilianaDefiantNecromancer() { addCard(Zone.BATTLEFIELD, playerA, "Liliana, Defiant Necromancer"); addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard"); addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); addCard(Zone.BATTLEFIELD, playerB, "Mountain", 2); addCard(Zone.HAND, playerB, "Lightning Bolt", 2); addCounters(1, PhaseStep.UPKEEP, playerA, "Liliana, Defiant Necromancer", CounterType.LOYALTY, 6); activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "-8: You get an emblem"); castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", "Elite Vanguard"); castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", "Silvercoat Lion"); setStopAt(2, PhaseStep.UPKEEP); execute(); assertEmblemCount(playerA, 1); assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1); assertPermanentCount(playerA, "Elite Vanguard", 1); assertPermanentCount(playerA, "Silvercoat Lion", 1); assertHandCount(playerA, 0); } }