/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ 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 anonymous */ public class NoRestForTheWickedTest extends CardTestPlayerBase { /** * Checks that all playerA creatures are back to playerA's hand */ //@Test public void testSacrifice() { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4); addCard(Zone.HAND, playerA, "No Rest for the Wicked"); addCard(Zone.BATTLEFIELD, playerA, "Memnite"); addCard(Zone.BATTLEFIELD, playerA, "Royal Assassin"); addCard(Zone.BATTLEFIELD, playerA, "Sengir Vampire"); addCard(Zone.BATTLEFIELD, playerB, "Island"); addCard(Zone.BATTLEFIELD, playerB, "Flowering Lumberknot"); addCard(Zone.BATTLEFIELD, playerB, "Moorland Inquisitor"); castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "No Rest for the Wicked"); attack(3, playerA, "Memnite"); attack(3, playerA, "Royal Assassin"); attack(3, playerA, "Sengin Vampire"); block(3, playerB, "Moorland Inquisitor", "Memnite"); activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sacrifice {this}: Return to your hand all creature cards in your graveyard that were put there from the battlefield this turn."); setStopAt(3, PhaseStep.END_TURN); execute(); assertGraveyardCount(playerA, 1); //No Rest only assertGraveyardCount(playerA, "No Rest for the Wicked", 1); assertGraveyardCount(playerA, "Memnite", 0); assertHandCount(playerA, "Memnite", 1); } /** * Checks that all playerA creatures sacrificed prior to playing * No Rest for the Wicked are back to playerA's hand */ //@Test public void testSacrificeAfterDying() { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4); addCard(Zone.HAND, playerA, "No Rest for the Wicked"); addCard(Zone.BATTLEFIELD, playerA, "Memnite"); addCard(Zone.BATTLEFIELD, playerA, "Royal Assassin"); addCard(Zone.BATTLEFIELD, playerA, "Sengir Vampire"); addCard(Zone.BATTLEFIELD, playerB, "Island"); addCard(Zone.BATTLEFIELD, playerB, "Flowering Lumberknot"); addCard(Zone.BATTLEFIELD, playerB, "Moorland Inquisitor"); attack(3, playerA, "Memnite"); attack(3, playerA, "Royal Assassin"); attack(3, playerA, "Sengin Vampire"); block(3, playerB, "Moorland Inquisitor", "Memnite"); castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "No Rest for the Wicked"); activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sacrifice {this}: Return to your hand all creature cards in your graveyard that were put there from the battlefield this turn."); setStopAt(3, PhaseStep.END_TURN); execute(); assertPermanentCount(playerA, "No Rest for the Wicked", 0); assertGraveyardCount(playerA, 1); //No Rest only assertGraveyardCount(playerA, "No Rest for the Wicked", 1); assertGraveyardCount(playerA, "Memnite", 0); assertHandCount(playerA, "Memnite", 1); } /** * Take ownership of a creature from playerB and destroy it. * Checks that after sacrificing No Rest for the Wicked it is on playerB's * graveyard, and that it's not on either player's hand. * 400.3 */ @Test public void testTakeControlThenSacrifice() { addCard(Zone.BATTLEFIELD, playerA, "Swamp", 7); addCard(Zone.HAND, playerA, "No Rest for the Wicked"); addCard(Zone.HAND, playerA, "Beacon of Unrest"); addCard(Zone.BATTLEFIELD, playerA, "Moorland Inquisitor"); addCard(Zone.BATTLEFIELD, playerB, "Moorland Inquisitor"); addCard(Zone.BATTLEFIELD, playerB, "Memnite"); castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "No Rest for the Wicked"); attack(4, playerB, "Memnite"); block(4, playerA, "Moorland Inquisitor", "Memnite"); castSpell(5, PhaseStep.POSTCOMBAT_MAIN, playerA, "Beacon of Unrest", "Memnite"); attack(7, playerA, "Memnite"); block(7, playerB, "Moorland Inquisitor", "Memnite"); activateAbility(7, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sacrifice {this}: Return to your hand all creature cards in your graveyard that were put there from the battlefield this turn."); setStopAt(7, PhaseStep.END_TURN); execute(); assertGraveyardCount(playerB, "Memnite", 1); assertHandCount(playerB, "Memnite", 0); assertPermanentCount(playerA, "No Rest for the Wicked", 0); assertGraveyardCount(playerA, 1); //No Rest only assertGraveyardCount(playerA, "No Rest for the Wicked", 1); assertGraveyardCount(playerA, "Memnite", 0); assertHandCount(playerA, "Memnite", 0); } }