package org.mage.test.cards.watchers;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author BetaSteward
*/
public class FuryOfTheHordeTest extends CardTestPlayerBase {
/*
* Fury of the Horde
* Sorcery, 5RR (7)
* You may exile two red cards from your hand rather than pay Fury of the
* Horde's mana cost.
* Untap all creatures that attacked this turn. After this main phase, there
* is an additional combat phase followed by an additional main phase.
*
*/
// test that creatures attack twice
@Test
public void testCreaturesAttackTwice() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 7);
addCard(Zone.BATTLEFIELD, playerA, "Craw Wurm");
addCard(Zone.BATTLEFIELD, playerA, "Goblin Roughrider");
addCard(Zone.HAND, playerA, "Fury of the Horde");
attack(3, playerA, "Craw Wurm");
attack(3, playerA, "Goblin Roughrider");
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Fury of the Horde");
setStopAt(3, PhaseStep.END_TURN);
execute();
this.assertLife(playerB, 2);
}
// test that creatures attack once
@Test
public void testCreaturesAttackOnce() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 7);
addCard(Zone.BATTLEFIELD, playerA, "Craw Wurm");
addCard(Zone.BATTLEFIELD, playerA, "Goblin Roughrider");
addCard(Zone.HAND, playerA, "Fury of the Horde");
attack(3, playerA, "Craw Wurm");
attack(3, playerA, "Goblin Roughrider");
setStopAt(3, PhaseStep.END_TURN);
execute();
this.assertLife(playerB, 11);
}
// test that only creatures that attacked attack twice
@Test
public void testCreaturesThatAttacked() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 7);
addCard(Zone.BATTLEFIELD, playerA, "Craw Wurm");
addCard(Zone.BATTLEFIELD, playerA, "Goblin Roughrider");
addCard(Zone.HAND, playerA, "Fury of the Horde");
attack(3, playerA, "Craw Wurm");
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Fury of the Horde");
setStopAt(3, PhaseStep.END_TURN);
execute();
this.assertLife(playerB, 8);
}
}