package org.mage.test.cards.control;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import mage.counters.CounterType;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
public class DackFaydenTest extends CardTestPlayerBase {
@Test
public void testDackFaydenEmblem() {
addCard(Zone.BATTLEFIELD, playerA, "Dack Fayden");
addCard(Zone.BATTLEFIELD, playerB, "Ornithopter");
addCard(Zone.HAND, playerA, "Gut Shot");
for(int i = 1; i < 8; i+= 2) {
activateAbility(i, PhaseStep.PRECOMBAT_MAIN, playerA,"+1: Target player draws two cards, then discards two cards.", playerB);
}
activateAbility(9, PhaseStep.PRECOMBAT_MAIN, playerA,
"-6: You get an emblem with \"Whenever you cast a spell that targets one or more permanents, gain control of those permanents.\"");
castSpell(10, PhaseStep.PRECOMBAT_MAIN, playerA, "Gut Shot", "Ornithopter");
setStopAt(10, PhaseStep.END_TURN);
execute();
assertLife(playerA, 18);
assertLife(playerB, 20);
assertCounterCount("Dack Fayden", CounterType.LOYALTY, 1);
assertPermanentCount(playerA, "Ornithopter", 1);
}
//Ensure that if a permanent moves to a different zone and comes back,
//it won't still be under the controller of Dack's Emblem.
@Test
public void testDackFaydenEmblemAcrossZones() {
addCard(Zone.BATTLEFIELD, playerA, "Dack Fayden");
addCard(Zone.BATTLEFIELD, playerB, "Ornithopter");
addCard(Zone.HAND, playerA, "Gut Shot");
addCard(Zone.HAND, playerA, "Unsummon");
addCard(Zone.BATTLEFIELD, playerA, "Island");
for(int i = 1; i < 8; i+= 2) {
activateAbility(i, PhaseStep.PRECOMBAT_MAIN, playerA,"+1: Target player draws two cards, then discards two cards.", playerB);
}
activateAbility(9, PhaseStep.PRECOMBAT_MAIN, playerA,
"-6: You get an emblem with \"Whenever you cast a spell that targets one or more permanents, gain control of those permanents.\"");
castSpell(10, PhaseStep.PRECOMBAT_MAIN, playerA, "Gut Shot", "Ornithopter");
castSpell(10, PhaseStep.PRECOMBAT_MAIN, playerA, "Unsummon", "Ornithopter", "Gut Shot", StackClause.WHILE_NOT_ON_STACK);
castSpell(10, PhaseStep.PRECOMBAT_MAIN, playerB, "Ornithopter");
setStopAt(10, PhaseStep.END_TURN);
execute();
assertLife(playerA, 18);
assertLife(playerB, 20);
assertCounterCount("Dack Fayden", CounterType.LOYALTY, 1);
assertPermanentCount(playerB, "Ornithopter", 1);
}
}