/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.mage.test.cards.abilities.enters;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author jeffwadsworth
*/
public class GatherSpecimensTest extends CardTestPlayerBase {
/* Gather Specimens {3}{U}{U}{U}
*
* If a creature would enter the battlefield under an opponent's control this turn, it enters the battlefield under your control instead.
*/
@Test
public void testFromHandEffect() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 6);
addCard(Zone.HAND, playerA, "Gather Specimens", 1);
addCard(Zone.LIBRARY, playerB, "Mountain", 1);
addCard(Zone.HAND, playerB, "Memnite", 1);
castSpell(2, PhaseStep.UPKEEP, playerA, "Gather Specimens");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Memnite");
setStopAt(2, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "Memnite", 1);
assertPermanentCount(playerB, "Memnite", 0);
}
@Test
public void testTokenCreatedFromSpellEffect() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 6);
addCard(Zone.HAND, playerA, "Gather Specimens", 1);
addCard(Zone.BATTLEFIELD, playerB, "Plains", 3);
addCard(Zone.HAND, playerB, "Spectral Procession", 1);
castSpell(2, PhaseStep.UPKEEP, playerA, "Gather Specimens");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Spectral Procession");
setStopAt(2, PhaseStep.BEGIN_COMBAT);
execute();
assertPermanentCount(playerA, "Spirit", 3);
assertPermanentCount(playerB, "Spirit", 0);
}
@Test
public void testFromGraveyardEffect() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 6);
addCard(Zone.HAND, playerA, "Gather Specimens", 1);
addCard(Zone.LIBRARY, playerA, "Memnite", 10);
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
addCard(Zone.HAND, playerB, "Dread Return", 1);
addCard(Zone.GRAVEYARD, playerB, "Memnite", 1);
addCard(Zone.LIBRARY, playerB, "Swamp", 10);
castSpell(2, PhaseStep.UPKEEP, playerA, "Gather Specimens");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Dread Return", "Memnite");
setStopAt(2, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "Memnite", 1);
assertPermanentCount(playerB, "Memnite", 0);
}
@Test
public void testFromExileEffect() {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 10);
addCard(Zone.BATTLEFIELD, playerA, "Island", 10);
addCard(Zone.HAND, playerA, "Disenchant", 1);
addCard(Zone.HAND, playerA, "Oblivion Ring", 1);
addCard(Zone.HAND, playerA, "Gather Specimens", 1);
addCard(Zone.LIBRARY, playerA, "Plains", 10);
addCard(Zone.BATTLEFIELD, playerB, "Memnite", 1);
addCard(Zone.LIBRARY, playerB, "Plains", 10);
// If a creature would enter the battlefield under an opponent's control this turn, it enters the battlefield under your control instead.
castSpell(1, PhaseStep.UPKEEP, playerA, "Gather Specimens");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Oblivion Ring");
addTarget(playerA, "Memnite");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Disenchant", "Oblivion Ring");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerB, "Memnite", 0);
assertPermanentCount(playerA, "Memnite", 1);
}
}