package org.mage.test.cards.single.emn; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; /** * * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) */ public class NephaliaAcademyTest extends CardTestPlayerBase { @Test public void testReplacementEffectBySpell() { // Sorcery {B} // Target opponent reveals his or her hand. You choose a noncreature, nonland card from it. That player discards that card. addCard(Zone.HAND, playerA, "Duress", 1); addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); // Nephalia Academy - Land <> // If a spell or ability an opponent controls causes you to discard a card, // you may reveal that card and put it on top of your library instead of putting it anywhere else. addCard(Zone.HAND, playerB, "Giant Growth", 1); // discard fodder addCard(Zone.BATTLEFIELD, playerB, "Nephalia Academy", 1); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Duress"); addTarget(playerA, playerB); setChoice(playerA, "Giant Growth"); // choose to discard Giant Growth setChoice(playerB, "Yes"); // replacement effect, choose to reveal the card and place on top of library execute(); assertGraveyardCount(playerA, "Duress", 1); assertHandCount(playerB, "Giant Growth", 0); assertGraveyardCount(playerB, "Giant Growth", 0); assertLibraryCount(playerB, "Giant Growth", 1); } @Test public void testDeclineReplacementEffectBySpell() { // Sorcery {B} // Target opponent reveals his or her hand. You choose a noncreature, nonland card from it. That player discards that card. addCard(Zone.HAND, playerA, "Duress", 1); addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); // Nephalia Academy - Land <> // If a spell or ability an opponent controls causes you to discard a card, // you may reveal that card and put it on top of your library instead of putting it anywhere else. addCard(Zone.HAND, playerB, "Giant Growth", 1); // discard fodder addCard(Zone.BATTLEFIELD, playerB, "Nephalia Academy", 1); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Duress"); addTarget(playerA, playerB); setChoice(playerA, "Giant Growth"); // choose to discard Giant Growth setChoice(playerB, "No"); // decline the replacement effect, allow the discard to happen execute(); assertGraveyardCount(playerA, "Duress", 1); assertHandCount(playerB, "Giant Growth", 0); assertGraveyardCount(playerB, "Giant Growth", 1); // discarded to grave } @Test public void testShouldNotApplyToOwnDiscardSpell() { // Nephalia Academy - Land <> // If a spell or ability an opponent controls causes you to discard a card, // you may reveal that card and put it on top of your library instead of putting it anywhere else. addCard(Zone.BATTLEFIELD, playerA, "Nephalia Academy", 1); addCard(Zone.BATTLEFIELD, playerA, "Island", 3); addCard(Zone.HAND, playerA, "Memnite", 1); // discard fodder // Sift - Sorcery <3><U> // Draw three cards. Then discard a card. addCard(Zone.HAND, playerA, "Sift", 1); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sift"); setChoice(playerA, "Yes"); // should not be given the option to use Nephalia Academy replacement effect setChoice(playerA, "Memnite"); setStopAt(1, PhaseStep.BEGIN_COMBAT); execute(); assertGraveyardCount(playerA, "Sift", 1); assertHandCount(playerA, "Memnite", 0); assertGraveyardCount(playerA, "Memnite", 1); // discarded to grave } //TODO: Add tests for replacement effect by ability }