* SOURCE_CAST_SPELL_ABILITY check for sourceId added.

This commit is contained in:
LevelX2 2015-09-01 22:52:00 +02:00
parent 5545aa02b5
commit fa14128486
29 changed files with 183 additions and 141 deletions

View file

@ -36,14 +36,31 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
*
* @author LevelX2
*/
public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
@Test
public void testWorldheartPhoenixNormal() {
// Creature - Phoenix {3}{R}
// Flying
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
// If you do, it enters the battlefield with two +1/+1 counters on it.
addCard(Zone.HAND, playerA, "Worldheart Phoenix");
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Worldheart Phoenix"); // can only be cast by {W}{U}{B}{R}{G}
setStopAt(1, PhaseStep.END_COMBAT);
execute();
assertPowerToughness(playerA, "Worldheart Phoenix", 2, 2);
}
@Test
public void testWorldheartPhoenixNoMana() {
// Creature - Phoenix {3}{R}
// Flying
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
// Flying
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
// If you do, it enters the battlefield with two +1/+1 counters on it.
addCard(Zone.GRAVEYARD, playerA, "Worldheart Phoenix");
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
@ -53,16 +70,15 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_COMBAT);
execute();
assertPermanentCount(playerA, "Worldheart Phoenix", 0);
}
assertPermanentCount(playerA, "Worldheart Phoenix", 0);
}
@Test
public void testWorldheartPhoenix() {
// Creature - Phoenix {3}{R}
// Flying
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
// Flying
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
// If you do, it enters the battlefield with two +1/+1 counters on it.
addCard(Zone.GRAVEYARD, playerA, "Worldheart Phoenix");
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1);
@ -76,11 +92,10 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_COMBAT);
execute();
assertPermanentCount(playerA, "Worldheart Phoenix", 1);
}
assertPermanentCount(playerA, "Worldheart Phoenix", 1);
}
@Test
public void testNarsetEnlightenedMaster() {
// First strike
@ -90,38 +105,36 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
skipInitShuffling();
addCard(Zone.LIBRARY, playerB, "Silvercoat Lion");
addCard(Zone.LIBRARY, playerB, "Abzan Banner");
addCard(Zone.LIBRARY, playerB, "Abzan Banner");
// Ferocious - If you control a creature with power 4 or greater, you may cast Dragon Grip as though it had flash. (You may cast it any time you could cast an instant.)
// Enchant creature
// Enchanted creature gets +2/+0 and has first strike.
addCard(Zone.LIBRARY, playerB, "Dragon Grip");
addCard(Zone.LIBRARY, playerB, "Dragon Grip");
// You gain 2 life for each creature you control.
addCard(Zone.LIBRARY, playerB, "Peach Garden Oath");
addCard(Zone.LIBRARY, playerB, "Plains");
addCard(Zone.LIBRARY, playerB, "Peach Garden Oath");
addCard(Zone.LIBRARY, playerB, "Plains");
attack(2, playerB, "Narset, Enlightened Master");
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Silvercoat Lion"); // can't be cast from exile
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Abzan Banner"); // can be cast from exile
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Dragon Grip", "Narset, Enlightened Master"); // can be cast from exile
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Peach Garden Oath"); // can be cast from exile
setStopAt(2, PhaseStep.END_TURN);
execute();
assertExileCount("Silvercoat Lion", 1);
assertPermanentCount(playerB, "Abzan Banner", 1);
assertPermanentCount(playerB, "Dragon Grip", 1);
assertPermanentCount(playerB, "Abzan Banner", 1);
assertPermanentCount(playerB, "Dragon Grip", 1);
assertGraveyardCount(playerB, "Peach Garden Oath", 1);
assertPowerToughness(playerB, "Narset, Enlightened Master", 5, 2);
assertHandCount(playerB, "Plains", 1);
assertLife(playerA, 17);
assertLife(playerB, 22);
}
}
}