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 OvermasterTest extends CardTestPlayerBase {
/*
* Overmaster
* Sorcery, R (1)
* The next instant or sorcery spell you cast this turn can't be countered by spells or abilities.
* Draw a card.
*
*/
// test that next spell can't be countered
@Test
public void testCantCounter() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.HAND, playerA, "Lightning Bolt");
addCard(Zone.HAND, playerA, "Counterspell");
addCard(Zone.HAND, playerA, "Overmaster");
addCard(Zone.BATTLEFIELD, playerA, "Raging Goblin");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Overmaster");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", "Raging Goblin");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Counterspell", "Lightning Bolt");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "Raging Goblin", 0);
assertGraveyardCount(playerA, "Raging Goblin", 1);
}
// test that second spell can be countered
@Test
public void testCanCounter() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3);
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.HAND, playerA, "Lightning Bolt", 2);
addCard(Zone.HAND, playerA, "Counterspell");
addCard(Zone.HAND, playerA, "Overmaster");
addCard(Zone.BATTLEFIELD, playerA, "Raging Goblin", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Overmaster");
castSpell(1, PhaseStep.DECLARE_ATTACKERS, playerA, "Lightning Bolt", "Raging Goblin");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", "Raging Goblin");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Counterspell", "Lightning Bolt");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "Raging Goblin", 1);
assertGraveyardCount(playerA, "Raging Goblin", 1);
}
}