From 5bca2d84e822dd39850f18b9a3edd19cea043436 Mon Sep 17 00:00:00 2001 From: drmDev Date: Sat, 30 Jul 2016 15:17:01 -0400 Subject: [PATCH] More tests for #2130 --- .../LilianaDefiantNecromancerTest.java | 75 ++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/LilianaDefiantNecromancerTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/LilianaDefiantNecromancerTest.java index 654d44127ab..0a9d737ed35 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/LilianaDefiantNecromancerTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/planeswalker/LilianaDefiantNecromancerTest.java @@ -38,7 +38,7 @@ public class LilianaDefiantNecromancerTest extends CardTestPlayerBase { // -X: Return target nonlegendary creature with converted mana cost X from your graveyard to the battlefield. activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "-X:"); setChoice(playerA, "X=1"); - addTarget(playerA, "Hill Giant"); + addTarget(playerA, "Hill Giant"); // dunno which to use for returning from grave, both target/choice seem to work setChoice(playerA, "Hill Giant"); setStopAt(1, PhaseStep.END_TURN); @@ -52,4 +52,77 @@ public class LilianaDefiantNecromancerTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Hill Giant", 0); assertGraveyardCount(playerA, "Hill Giant", 1); } + + @Test + public void testMinusAbilityShouldNotReturnLegendaryCreature() { + addCard(Zone.BATTLEFIELD, playerA, "Alesha, Who Smiles at Death", 1); // {2}{R} 3/2 Legendary first strike + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); + + // Lifelink + // Whenever another nontoken creature you control dies, exile Liliana Heretical Healer, then return her to the battlefield transformed under her owner's control. If you do, put a 2/2 black Zombie creature token onto the battlefield. + addCard(Zone.HAND, playerA, "Liliana, Heretical Healer"); + + addCard(Zone.HAND, playerB, "Lightning Bolt"); + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Liliana, Heretical Healer"); + castSpell(1, PhaseStep.BEGIN_COMBAT, playerB, "Lightning Bolt"); + addTarget(playerB, "Alesha, Who Smiles at Death"); + + // Transformed into Liliana, Defiant Necromancer with (3) loyalty to start + // -X: Return target nonlegendary creature with converted mana cost X from your graveyard to the battlefield. + activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "-X:"); + setChoice(playerA, "X=3"); + addTarget(playerA, "Alesha, Who Smiles at Death"); // dunno which to use for returning from grave, both target/choice seem to work + setChoice(playerA, "Alesha, Who Smiles at Death"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertGraveyardCount(playerB, "Lightning Bolt", 1); + assertPermanentCount(playerA, "Liliana, Heretical Healer", 0); + assertPermanentCount(playerA, "Zombie", 1); + assertPermanentCount(playerA, "Alesha, Who Smiles at Death", 0); + assertGraveyardCount(playerA, "Alesha, Who Smiles at Death", 1); + // because target could not be chosen, the counters were never removed? + assertCounterCount("Liliana, Defiant Necromancer", CounterType.LOYALTY, 3); + assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1); + } + + @Test + public void testMinusAbilityShouldReturnNonLegendaryCreature() { + addCard(Zone.BATTLEFIELD, playerA, "Bronze Sable", 1); // {2} 2/1 + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); + + // Lifelink + // Whenever another nontoken creature you control dies, exile Liliana Heretical Healer, then return her to the battlefield transformed under her owner's control. If you do, put a 2/2 black Zombie creature token onto the battlefield. + addCard(Zone.HAND, playerA, "Liliana, Heretical Healer"); + + addCard(Zone.HAND, playerB, "Lightning Bolt"); + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Liliana, Heretical Healer"); + castSpell(1, PhaseStep.BEGIN_COMBAT, playerB, "Lightning Bolt"); + addTarget(playerB, "Bronze Sable"); + + // Transformed into Liliana, Defiant Necromancer with (3) loyalty to start + // -X: Return target nonlegendary creature with converted mana cost X from your graveyard to the battlefield. + activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "-X:"); + setChoice(playerA, "X=2"); + addTarget(playerA, "Bronze Sable"); // dunno which to use for returning from grave, both target/choice seem to work + setChoice(playerA, "Bronze Sable"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertGraveyardCount(playerB, "Lightning Bolt", 1); + assertPermanentCount(playerA, "Liliana, Heretical Healer", 0); + assertPermanentCount(playerA, "Zombie", 1); + assertPermanentCount(playerA, "Bronze Sable", 1); + assertGraveyardCount(playerA, "Bronze Sable", 0); + assertPermanentCount(playerA, "Liliana, Defiant Necromancer", 1); + assertCounterCount("Liliana, Defiant Necromancer", CounterType.LOYALTY, 1); + } + + }