package org.mage.test.cards.single.roe;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import mage.game.permanent.Permanent;
import org.junit.Assert;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author magenoxx_at_gmail.com
*/
public class WorldAtWarTest extends CardTestPlayerBase {
/**
* Tests creatures attack twice
*/
@Test
public void testCard() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 5);
addCard(Zone.BATTLEFIELD, playerA, "Fervor");
addCard(Zone.HAND, playerA, "World at War");
addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard");
addCard(Zone.BATTLEFIELD, playerA, "Warclamp Mastiff");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "World at War");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Warclamp Mastiff");
attack(1, playerA, "Warclamp Mastiff");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertLife(playerB, 14);
Permanent eliteVanguard = getPermanent("Elite Vanguard", playerA);
Assert.assertTrue(eliteVanguard.isTapped());
}
/**
* Tests creatures attack twice on each turn (Rebound)
*/
@Test
public void testCardWithRebound() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 5);
// Enchantment - Creatures you control have haste. (They can attack and as soon as they come under your control.)
addCard(Zone.BATTLEFIELD, playerA, "Fervor");
// After the first postcombat main phase this turn, there's an additional combat phase followed by
// an additional main phase. At the beginning of that combat, untap all creatures that attacked this turn.
// Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your
// next upkeep, you may cast this card from exile without paying its mana cost.)
addCard(Zone.HAND, playerA, "World at War");
// Creature - Human Soldier 2/1
addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard");
// Creature - Hound 1/1
addCard(Zone.BATTLEFIELD, playerA, "Warclamp Mastiff");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "World at War");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Warclamp Mastiff");
attack(1, playerA, "Warclamp Mastiff");
attack(3, playerA, "Elite Vanguard");
attack(3, playerA, "Elite Vanguard");
attack(3, playerA, "Warclamp Mastiff");
attack(3, playerA, "Warclamp Mastiff");
setStopAt(3, PhaseStep.END_TURN);
execute();
assertLife(playerB, 8);
Permanent eliteVanguard = getPermanent("Elite Vanguard", playerA);
Assert.assertTrue(eliteVanguard.isTapped());
}
/**
* Tests creatures attack three times
*/
@Test
public void testDoubleCast() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 10);
addCard(Zone.BATTLEFIELD, playerA, "Fervor");
addCard(Zone.HAND, playerA, "World at War", 2);
addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard");
addCard(Zone.BATTLEFIELD, playerA, "Warclamp Mastiff");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "World at War");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "World at War");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Elite Vanguard");
attack(1, playerA, "Warclamp Mastiff");
attack(1, playerA, "Warclamp Mastiff");
attack(1, playerA, "Warclamp Mastiff");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertLife(playerB, 11);
Permanent eliteVanguard = getPermanent("Elite Vanguard", playerA);
Assert.assertTrue(eliteVanguard.isTapped());
}
}