mirror of
https://github.com/correl/mage.git
synced 2025-01-11 19:13:02 +00:00
add m21 tests for B
This commit is contained in:
parent
7a78be8c6a
commit
134bb63185
8 changed files with 351 additions and 0 deletions
|
@ -0,0 +1,82 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BasriDevotedPaladinTest extends CardTestPlayerBase {
|
||||
|
||||
private static final String basriDevotedPaladin = "Basri, Devoted Paladin";
|
||||
// +1: Put a +1/+1 counter on up to one target creature. It gains vigilance until end of turn.
|
||||
// −1: Whenever a creature attacks this turn, put a +1/+1 counter on it.
|
||||
// −6: Creatures you control get +2/+2 and gain flying until end of turn.
|
||||
|
||||
@Test
|
||||
public void testAddCounter(){
|
||||
// Loyalty 4
|
||||
// +1: Put a +1/+1 counter on up to one target creature. It gains vigilance until end of turn.
|
||||
addCard(Zone.BATTLEFIELD, playerA, basriDevotedPaladin,1);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
|
||||
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: ");
|
||||
addTarget(playerA, "Savannah Lions");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertAbility(playerA, "Savannah Lions", VigilanceAbility.getInstance(), true);
|
||||
assertCounterCount(playerA, "Savannah Lions", CounterType.P1P1, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAttackTrigger(){
|
||||
// Loyalty 4
|
||||
// −1: Whenever a creature attacks this turn, put a +1/+1 counter on it.
|
||||
addCard(Zone.BATTLEFIELD, playerA, basriDevotedPaladin,1);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
|
||||
|
||||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "-1: ");
|
||||
attack(3, playerA, "Savannah Lions");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(5, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertLife(playerB, 17);
|
||||
assertCounterCount(playerA, "Savannah Lions", CounterType.P1P1, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUltimate(){
|
||||
// Loyalty 4
|
||||
// −6: Creatures you control get +2/+2 and gain flying until end of turn.
|
||||
addCard(Zone.BATTLEFIELD, playerA, basriDevotedPaladin,1);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
|
||||
|
||||
//turn 1, Loyalty = 5
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: ");
|
||||
addTarget(playerA, "Savannah Lions");
|
||||
|
||||
// turn 3, Loyalty = 6
|
||||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: ");
|
||||
addTarget(playerA, "Savannah Lions");
|
||||
|
||||
activateAbility(5, PhaseStep.PRECOMBAT_MAIN, playerA, "-6: ");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(5, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPowerToughness(playerA, "Savannah Lions", 6, 5);
|
||||
assertAbility(playerA, "Savannah Lions", FlyingAbility.getInstance(), true);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BasrisLieutenantTest extends CardTestPlayerBase {
|
||||
|
||||
private static final String basrisLieutenant = "Basri's Lieutenant";
|
||||
|
||||
@Test
|
||||
public void counterOnLieutenant(){
|
||||
// When Basri's Lieutenant enters the battlefield, put a +1/+1 counter on target creature you control.
|
||||
// Whenever Basri's Lieutenant or another creature you control dies, if it had a +1/+1 counter on it, create a 2/2 white Knight creature token with vigilance.
|
||||
|
||||
addCard(Zone.HAND, playerA, basrisLieutenant);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 8);
|
||||
// Destroy all creatures. They can't be regenerated.
|
||||
addCard(Zone.HAND, playerA, "Wrath of God");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, basrisLieutenant);
|
||||
addTarget(playerA, basrisLieutenant);
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wrath of God");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPermanentCount(playerA, "Knight", 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void counterOnOtherCreature(){
|
||||
// When Basri's Lieutenant enters the battlefield, put a +1/+1 counter on target creature you control.
|
||||
// Whenever Basri's Lieutenant or another creature you control dies, if it had a +1/+1 counter on it, create a 2/2 white Knight creature token with vigilance.
|
||||
|
||||
addCard(Zone.HAND, playerA, basrisLieutenant);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 8);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
|
||||
// Destroy all creatures. They can't be regenerated.
|
||||
addCard(Zone.HAND, playerA, "Wrath of God");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, basrisLieutenant);
|
||||
addTarget(playerA, "Savannah Lions");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wrath of God");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPermanentCount(playerA, "Knight", 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void creatureWithoutCounterDies(){
|
||||
// When Basri's Lieutenant enters the battlefield, put a +1/+1 counter on target creature you control.
|
||||
// Whenever Basri's Lieutenant or another creature you control dies, if it had a +1/+1 counter on it, create a 2/2 white Knight creature token with vigilance.
|
||||
|
||||
addCard(Zone.HAND, playerA, basrisLieutenant);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 4);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 5);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
|
||||
// Destroy target nonartifact, nonblack creature. It can't be regenerated.
|
||||
addCard(Zone.HAND, playerA, "Terror");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, basrisLieutenant);
|
||||
addTarget(playerA, "Savannah Lions");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Terror", basrisLieutenant);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPermanentCount(playerA, "Knight", 0);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BasrisSolidarityTest extends CardTestPlayerBase {
|
||||
|
||||
private static final String basrisSolidarity = "Basri's Solidarity";
|
||||
|
||||
@Test
|
||||
public void addCountersToControlledCreatures(){
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Scryb Sprites");
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Raging Goblin");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
|
||||
// Put a +1/+1 counter on each creature you control.
|
||||
addCard(Zone.HAND, playerA, basrisSolidarity);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, basrisSolidarity);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
setStrictChooseMode(true);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertCounterCount(playerA, "Savannah Lions", CounterType.P1P1, 1);
|
||||
assertCounterCount(playerA, "Scryb Sprites", CounterType.P1P1, 1);
|
||||
assertCounterCount(playerB, "Raging Goblin", CounterType.P1P1, 0);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BoltHoundTest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void testBoostOthers(){
|
||||
// Haste
|
||||
// Whenever Bolt Hound attacks, other creatures you control get +1/+0 until end of turn.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Bolt Hound");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Raging Goblin");
|
||||
|
||||
attack(1, playerA, "Bolt Hound");
|
||||
attack(1, playerA, "Raging Goblin");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertLife(playerB, 16);
|
||||
assertPowerToughness(playerA, "Bolt Hound", 2,2);
|
||||
assertPowerToughness(playerA, "Raging Goblin", 2, 1);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BonePitBruteTest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void boostETB(){
|
||||
// {4}{R}{R}
|
||||
// When Bone Pit Brute enters the battlefield, target creature gets +4/+0 until end of turn.
|
||||
addCard(Zone.HAND, playerA, "Bone Pit Brute");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bone Pit Brute");
|
||||
addTarget(playerA, "Bone Pit Brute");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPowerToughness(playerA, "Bone Pit Brute", 8, 5);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BrashTaunterTest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void testTriggerDamageToOpponent(){
|
||||
// Whenever Brash Taunter is dealt damage, it deals that much damage to target opponent.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Brash Taunter");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain");
|
||||
// Shock deals 2 damage to any target
|
||||
addCard(Zone.HAND, playerA, "Shock");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shock", "Brash Taunter");
|
||||
addTarget(playerA, playerB);
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertLife(playerB, 18);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFightAbility(){
|
||||
// Whenever Brash Taunter is dealt damage, it deals that much damage to target opponent.
|
||||
// {2}{R}, {T}: Brash Taunter fights another target creature.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Brash Taunter");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3);
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Serra Angel");
|
||||
|
||||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}{R}", "Serra Angel");
|
||||
addTarget(playerA, playerB);
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertLife(playerB, 16);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BurlfistOakTest extends CardTestPlayerBase {
|
||||
|
||||
|
||||
@Test
|
||||
public void boostOnCardDraw(){
|
||||
// {2}{G}{G}
|
||||
// Whenever you draw a card, Burlfist Oak gets +2/+2 until end of turn.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Burlfist Oak");
|
||||
|
||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||
setStrictChooseMode(true);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPowerToughness(playerA, "Burlfist Oak", 4, 5);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package org.mage.test.cards.single.m21;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
public class BurnBrightTest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void boostControlledCreatures(){
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Raging Goblin");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Scryb Sprites");
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Grizzly Bears");
|
||||
// {2}{R}
|
||||
// Creatures you control get +2/+0 until end of turn.
|
||||
addCard(Zone.HAND, playerA, "Burn Bright");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burn Bright");
|
||||
|
||||
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
|
||||
setStrictChooseMode(true);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertPowerToughness(playerA, "Raging Goblin", 3, 1);
|
||||
assertPowerToughness(playerA, "Scryb Sprites", 3, 1);
|
||||
assertPowerToughness(playerB, "Grizzly Bears", 2, 2);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue