diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BlitzTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BlitzTest.java
index a3f74a9f86f..fd551527b89 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BlitzTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/BlitzTest.java
@@ -77,7 +77,7 @@ public class BlitzTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, decoy + withBlitz);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Double Major",decoy);
- setChoice(playerA, ""); //stack triggers
+ setChoice(playerA, "At the beginning of the next end step"); // x2 triggers
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DisguiseTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DisguiseTest.java
index 5a168aaca66..3ad59bf8d70 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DisguiseTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DisguiseTest.java
@@ -67,7 +67,7 @@ public class DisguiseTest extends CardTestPlayerBase {
});
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Dog Walker", 0);
- checkPermanentCount("after face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ checkPermanentCount("after face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
runCode("after face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, (info, player, game) -> {
// server side
Permanent permanent = currentGame.getBattlefield().getAllPermanents()
@@ -76,7 +76,7 @@ public class DisguiseTest extends CardTestPlayerBase {
.findFirst()
.orElse(null);
Assert.assertNotNull("server side: can't find disguised permanent", permanent);
- Assert.assertEquals("server side: wrong name", EmptyNames.FACE_DOWN_CREATURE.toString(), permanent.getName());
+ Assert.assertEquals("server side: wrong name", EmptyNames.FACE_DOWN_CREATURE.getObjectName(), permanent.getName());
Assert.assertEquals("server side: wrong color", "", permanent.getColor(currentGame).toString());
Assert.assertEquals("server side: wrong power", "2", permanent.getPower().toString());
Assert.assertEquals("server side: wrong toughness", "2", permanent.getToughness().toString());
@@ -145,7 +145,7 @@ public class DisguiseTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{R/W}{R/W}: Turn");
waitStackResolved(1, PhaseStep.POSTCOMBAT_MAIN, playerA);
checkPermanentCount("after face up", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Dog Walker", 1);
- checkPermanentCount("after face up", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("after face up", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
checkPermanentCount("after face up", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Dog Token", 2);
runCode("after face up", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, (info, player, game) -> {
Permanent permanent = currentGame.getBattlefield().getAllPermanents()
@@ -193,7 +193,7 @@ public class DisguiseTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
assertLife(playerA, 20);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/EchoTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/EchoTest.java
index 833f64b98e6..093d7ec92fa 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/EchoTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/EchoTest.java
@@ -88,8 +88,7 @@ public class EchoTest extends CardTestPlayerBase {
setChoice(playerA, true);
setChoice(playerA, "Deranged Hermit");
- setChoice(playerA, ""); //stack triggers
- setChoice(playerA, "");
+ setChoice(playerA, "Echo {3}{G}{G}", 2); // x3 triggers from Deranged Hermit
setChoice(playerA, true); //Pay echo costs
setChoice(playerA, true);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ManifestTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ManifestTest.java
index b3acdef25d5..973291e4438 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ManifestTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/ManifestTest.java
@@ -37,7 +37,7 @@ public class ManifestTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -55,7 +55,7 @@ public class ManifestTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -75,8 +75,8 @@ public class ManifestTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -90,32 +90,32 @@ public class ManifestTest extends CardTestPlayerBase {
});
// turn 1
- checkPermanentCount("turn 1.A - no face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
- checkPermanentCount("turn 1.B - no face down", 1, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("turn 1.A - no face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
+ checkPermanentCount("turn 1.B - no face down", 1, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
// turn 2
- checkPermanentCount("turn 2.A - +1 face down", 2, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- checkPermanentCount("turn 2.B - no face down", 2, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("turn 2.A - +1 face down", 2, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ checkPermanentCount("turn 2.B - no face down", 2, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
// turn 3
- checkPermanentCount("turn 3.A - +1 face down", 3, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- checkPermanentCount("turn 3.B - no face down", 3, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("turn 3.A - +1 face down", 3, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ checkPermanentCount("turn 3.B - no face down", 3, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
// turn 4
- checkPermanentCount("turn 4.A - +2 face down", 4, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
- checkPermanentCount("turn 4.B - no face down", 4, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("turn 4.A - +2 face down", 4, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
+ checkPermanentCount("turn 4.B - no face down", 4, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
// turn 5
- checkPermanentCount("turn 5.A - +2 face down", 5, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
- checkPermanentCount("turn 5.B - no face down", 5, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("turn 5.A - +2 face down", 5, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
+ checkPermanentCount("turn 5.B - no face down", 5, PhaseStep.PRECOMBAT_MAIN, playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
setStrictChooseMode(true);
setStopAt(5, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
Assert.assertEquals("manifested cards must be taken from opponent's library", 2, playerA.getLibrary().size() - playerB.getLibrary().size());
}
@@ -137,12 +137,12 @@ public class ManifestTest extends CardTestPlayerBase {
// manifest
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Soul Summons");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
- checkPermanentCount("need face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ checkPermanentCount("need face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
// blink
- castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cloudshift", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cloudshift", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
- checkPermanentCount("need no face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ checkPermanentCount("need no face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
runCode("after blink", 1, PhaseStep.PRECOMBAT_MAIN, playerA, (info, player, game) -> {
if (cardAfterBlink == null) {
@@ -239,10 +239,10 @@ public class ManifestTest extends CardTestPlayerBase {
assertLife(playerA, 20);
assertLife(playerB, 20);
// a facedown creature is on the battlefield
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
// not tapped
- assertTapped(EmptyNames.FACE_DOWN_CREATURE.toString(), false);
+ assertTapped(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), false);
}
/**
@@ -271,8 +271,8 @@ public class ManifestTest extends CardTestPlayerBase {
assertLife(playerA, 20);
assertLife(playerB, 20);
// a facedown creature is on the battlefield
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
// PlayerB's Silvercoat Lion should not have get -1/-1/
assertPermanentCount(playerB, "Silvercoat Lion", 1);
assertPowerToughness(playerB, "Silvercoat Lion", 2, 2);
@@ -308,8 +308,8 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Reality Shift", 1);
assertExileCount("Silvercoat Lion", 1);
// a facedown creature is on the battlefield
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
// PlayerA's Pillarfield Ox should not have get -1/-1/
assertPermanentCount(playerB, "Pillarfield Ox", 1);
assertPowerToughness(playerB, "Pillarfield Ox", 2, 4);
@@ -346,8 +346,8 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Reality Shift", 1);
assertExileCount("Silvercoat Lion", 1);
// a facedown creature is on the battlefield
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
}
@@ -382,8 +382,8 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Reality Shift", 1);
assertExileCount("Silvercoat Lion", 1);
// a facedown creature is on the battlefield
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
assertPowerToughness(playerA, "Foundry Street Denizen", 1, 1);
}
@@ -413,7 +413,7 @@ public class ManifestTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Reality Shift", "Silvercoat Lion");
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
// showBattlefield("B battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerB);
- castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Silence the Believers", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Silence the Believers", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStopAt(1, PhaseStep.END_TURN);
execute();
@@ -425,7 +425,7 @@ public class ManifestTest extends CardTestPlayerBase {
assertExileCount("Silvercoat Lion", 1);
assertExileCount("Gore Swine", 1);
// no facedown creature is on the battlefield
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
for (Card card : currentGame.getExile().getAllCards(currentGame)) {
if (card.getName().equals("Gore Swine")) {
@@ -464,7 +464,7 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
// a facedown creature is on the battlefield
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@@ -504,7 +504,7 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerB, "Aerie Bowmasters", 1);
assertPowerToughness(playerB, "Aerie Bowmasters", 4, 5); // 3/4 and the +1/+1 counter from Megamorph
Permanent aerie = getPermanent("Aerie Bowmasters", playerB);
@@ -542,7 +542,7 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerB, "Aerie Bowmasters", 1);
assertPowerToughness(playerB, "Aerie Bowmasters", 3, 4); // 3/4 without counter (megamorph not used)
Permanent aerie = getPermanent("Aerie Bowmasters", playerB);
@@ -582,7 +582,7 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@@ -619,7 +619,7 @@ public class ManifestTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Whisperwood Elemental", 1);
assertGraveyardCount(playerB, "Silvercoat Lion", 2);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
}
@@ -653,7 +653,7 @@ public class ManifestTest extends CardTestPlayerBase {
setChoice(playerB, "Silvercoat Lion");
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Sacrifice a creature");
- setChoice(playerB, EmptyNames.FACE_DOWN_CREATURE.toString());
+ setChoice(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStrictChooseMode(true);
setStopAt(2, PhaseStep.END_TURN);
@@ -704,7 +704,7 @@ public class ManifestTest extends CardTestPlayerBase {
waitStackResolved(2, PhaseStep.PRECOMBAT_MAIN, playerB);
- castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Cloudshift", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Cloudshift", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStrictChooseMode(true);
setStopAt(2, PhaseStep.END_TURN);
@@ -739,7 +739,7 @@ public class ManifestTest extends CardTestPlayerBase {
.findFirst()
.orElse(null);
Assert.assertNotNull(perm);
- Assert.assertEquals("server side face down permanent must have empty name", EmptyNames.FACE_DOWN_CREATURE.toString(), perm.getName());
+ Assert.assertEquals("server side face down permanent must have empty name", EmptyNames.FACE_DOWN_CREATURE.getObjectName(), perm.getName());
GameView gameView = new GameView(game.getState(), game, viewFromPlayer.getId(), null);
PlayerView playerView = gameView.getPlayers()
.stream()
@@ -844,8 +844,8 @@ public class ManifestTest extends CardTestPlayerBase {
execute();
assertGraveyardCount(playerA, excommunicate, 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
assertLife(playerA, 20);
assertLife(playerB, 18);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java
index 40327de77d7..fe9abdf8c70 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java
@@ -58,8 +58,8 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
}
@@ -73,7 +73,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
- attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
+ attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "{4}{G}: Turn this face-down permanent face up.");
setStopAt(3, PhaseStep.END_TURN);
@@ -81,7 +81,7 @@ public class MorphTest extends CardTestPlayerBase {
assertLife(playerB, 18);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerA, "Pine Walker", 1);
assertPowerToughness(playerA, "Pine Walker", 5, 5);
assertTapped("Pine Walker", false);
@@ -104,8 +104,8 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Icefeather Aven using Morph", TestPlayer.NO_TARGET, "Pine Walker", StackClause.WHILE_NOT_ON_STACK);
- attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
- attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
+ attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
+ attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
activateAbility(3, PhaseStep.DECLARE_BLOCKERS, playerA, "{1}{G}{U}: Turn this face-down permanent face up.");
setChoice(playerA, false); // Don't use return permanent to hand effect
@@ -117,7 +117,7 @@ public class MorphTest extends CardTestPlayerBase {
assertHandCount(playerA, "Pine Walker", 0);
assertHandCount(playerA, "Icefeather Aven", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertPermanentCount(playerA, "Icefeather Aven", 1);
assertTapped("Icefeather Aven", true);
@@ -148,7 +148,7 @@ public class MorphTest extends CardTestPlayerBase {
assertLife(playerB, 20); // and not 21
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertPermanentCount(playerB, "Soldier of the Pantheon", 1);
}
@@ -175,10 +175,10 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(2, PhaseStep.BEGIN_COMBAT);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
}
/**
@@ -212,7 +212,7 @@ public class MorphTest extends CardTestPlayerBase {
assertHandCount(playerA, "Pine Walker", 0);
assertHandCount(playerB, "Doomwake Giant", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerB, "Doomwake Giant", 1);
assertPermanentCount(playerA, "Pine Walker", 1);
assertPowerToughness(playerA, "Pine Walker", 4, 4);
@@ -252,7 +252,7 @@ public class MorphTest extends CardTestPlayerBase {
assertHandCount(playerA, "Ponyback Brigade", 0);
assertHandCount(playerB, "Doomwake Giant", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerA, "Goblin Token", 3);
assertPowerToughness(playerA, "Goblin Token", 1, 1, Filter.ComparisonScope.Any);
assertPermanentCount(playerB, "Doomwake Giant", 1);
@@ -323,7 +323,7 @@ public class MorphTest extends CardTestPlayerBase {
assertHandCount(playerA, "Sagu Mauler", 0);
assertHandCount(playerB, "Disdainful Stroke", 1); // can't be cast
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@@ -351,7 +351,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler using Morph", TestPlayer.NO_TARGET, "Sagu Mauler", StackClause.WHILE_NOT_ON_STACK);
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
- castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Echoing Decay", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Echoing Decay", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
// showBattlefield("A battle after", 1, PhaseStep.END_TURN, playerA);
setStopAt(1, PhaseStep.END_TURN);
@@ -364,7 +364,7 @@ public class MorphTest extends CardTestPlayerBase {
assertHandCount(playerA, "Sagu Mauler", 0);
assertHandCount(playerB, "Echoing Decay", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertGraveyardCount(playerA, "Sagu Mauler", 1);
}
@@ -410,7 +410,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Birchlore Rangers using Morph");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
- castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Swords to Plowshares", "");
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Swords to Plowshares", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@@ -449,7 +449,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix using Morph");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
- castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@@ -489,7 +489,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix using Morph");
attack(2, playerB, "Mirri, Cat Warrior");
- block(2, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), "Mirri, Cat Warrior");
+ block(2, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), "Mirri, Cat Warrior");
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();
@@ -528,7 +528,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury using Morph");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Supplant Form");
- addTarget(playerB, EmptyNames.FACE_DOWN_CREATURE.toString());
+ addTarget(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStopAt(1, PhaseStep.END_TURN);
execute();
@@ -536,13 +536,13 @@ public class MorphTest extends CardTestPlayerBase {
assertLife(playerB, 20);
assertHandCount(playerA, "Akroma, Angel of Fury", 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerA, "Akroma, Angel of Fury", 0);
assertGraveyardCount(playerB, "Supplant Form", 1);
assertPermanentCount(playerB, "Akroma, Angel of Fury", 0);
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_TOKEN.toString(), 1);
- assertPowerToughness(playerB, EmptyNames.FACE_DOWN_TOKEN.toString(), 2, 2);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_TOKEN.getTestCommand(), 1);
+ assertPowerToughness(playerB, EmptyNames.FACE_DOWN_TOKEN.getTestCommand(), 2, 2);
}
/**
@@ -567,7 +567,7 @@ public class MorphTest extends CardTestPlayerBase {
assertLife(playerA, 20);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@@ -591,7 +591,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
- attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
+ attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "{4}{G}: Turn this face-down permanent face up.");
setStopAt(3, PhaseStep.END_TURN);
@@ -599,7 +599,7 @@ public class MorphTest extends CardTestPlayerBase {
assertLife(playerB, 18);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerA, "Pine Walker", 1);
assertPowerToughness(playerA, "Pine Walker", 5, 5);
assertTapped("Pine Walker", false);
@@ -652,7 +652,7 @@ public class MorphTest extends CardTestPlayerBase {
assertPermanentCount(playerA, "Reflector Mage", 1);
assertPermanentCount(playerB, "Rattleclaw Mystic", 0);
assertHandCount(playerB, "Rattleclaw Mystic", 1); // can't play
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 0); // don't try as morph
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0); // don't try as morph
}
@Test
@@ -685,7 +685,7 @@ public class MorphTest extends CardTestPlayerBase {
assertPermanentCount(playerA, "Reflector Mage", 1);
assertPermanentCount(playerB, "Rattleclaw Mystic", 0);
assertHandCount(playerB, "Rattleclaw Mystic", 0); // able cast as morph
- assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerB, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
/**
@@ -809,7 +809,7 @@ public class MorphTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Fatal Push", 1);
assertGraveyardCount(playerA, "Pine Walker", 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
}
@@ -842,7 +842,7 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertHandCount(playerA, 0);
assertTappedCount("Island", true, 3);
@@ -877,7 +877,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon using Morph");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
- castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStopAt(2, PhaseStep.UPKEEP);
execute();
@@ -959,7 +959,7 @@ public class MorphTest extends CardTestPlayerBase {
execute();
assertPermanentCount(playerA, "Zoetic Cavern", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -984,7 +984,7 @@ public class MorphTest extends CardTestPlayerBase {
assertPermanentCount(playerA, "Island", 1);
assertPermanentCount(playerA, "Zoetic Cavern", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -1007,7 +1007,7 @@ public class MorphTest extends CardTestPlayerBase {
execute();
assertPermanentCount(playerA, "Zoetic Cavern", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -1048,7 +1048,7 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -1069,7 +1069,7 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -1099,7 +1099,7 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(3, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -1122,7 +1122,7 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
}
@Test
@@ -1134,10 +1134,10 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Monastery Flock using Morph");
- checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
checkPlayableAbility("unmorph", 1, PhaseStep.BEGIN_COMBAT, playerA, "{U}: Turn this", true);
- castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Tamiyo's Compleation", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Tamiyo's Compleation", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
checkPlayableAbility("unmorph", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{U}: Turn this", false);
@@ -1145,9 +1145,9 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertTapped(EmptyNames.FACE_DOWN_CREATURE.toString(), true);
- assertAttachedTo(playerA, "Tamiyo's Compleation", EmptyNames.FACE_DOWN_CREATURE.toString(), true);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ assertTapped(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), true);
+ assertAttachedTo(playerA, "Tamiyo's Compleation", EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), true);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
}
@Test
@@ -1162,10 +1162,10 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sage-Eye Harrier using Morph");
- checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
checkPlayableAbility("unmorph", 1, PhaseStep.BEGIN_COMBAT, playerA, "{3}{W}: Turn this", true);
- castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Minimus Containment", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Minimus Containment", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
checkPlayableAbility("unmorph", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{3}{W}: Turn this", false);
@@ -1175,10 +1175,10 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(2, PhaseStep.UPKEEP);
execute();
- assertSubtype(EmptyNames.FACE_DOWN_CREATURE.toString(), SubType.TREASURE);
- assertType(EmptyNames.FACE_DOWN_CREATURE.toString(), CardType.ARTIFACT, true);
- assertType(EmptyNames.FACE_DOWN_CREATURE.toString(), CardType.CREATURE, false);
- assertAttachedTo(playerA, "Minimus Containment", EmptyNames.FACE_DOWN_CREATURE.toString(), true);
+ assertSubtype(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), SubType.TREASURE);
+ assertType(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), CardType.ARTIFACT, true);
+ assertType(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), CardType.CREATURE, false);
+ assertAttachedTo(playerA, "Minimus Containment", EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), true);
}
@Test
@@ -1190,7 +1190,7 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Monastery Flock using Morph");
- checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
checkPlayableAbility("unmorph", 1, PhaseStep.BEGIN_COMBAT, playerA, "{U}: Turn this", true);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Mycosynth Lattice");
@@ -1201,10 +1201,10 @@ public class MorphTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertType(EmptyNames.FACE_DOWN_CREATURE.toString(), CardType.ARTIFACT, true);
- assertType(EmptyNames.FACE_DOWN_CREATURE.toString(), CardType.CREATURE, true);
- assertNotSubtype(EmptyNames.FACE_DOWN_CREATURE.toString(), SubType.BIRD);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ assertType(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), CardType.ARTIFACT, true);
+ assertType(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), CardType.CREATURE, true);
+ assertNotSubtype(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), SubType.BIRD);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
}
@Test
@@ -1216,17 +1216,17 @@ public class MorphTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Monastery Flock using Morph");
- checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ checkPT("face down", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
checkPlayableAbility("unmorph", 1, PhaseStep.BEGIN_COMBAT, playerA, "{U}: Turn this", true);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertType(EmptyNames.FACE_DOWN_CREATURE.toString(), CardType.ARTIFACT, true);
- assertType(EmptyNames.FACE_DOWN_CREATURE.toString(), CardType.CREATURE, true);
- assertNotSubtype(EmptyNames.FACE_DOWN_CREATURE.toString(), SubType.BIRD);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ assertType(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), CardType.ARTIFACT, true);
+ assertType(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), CardType.CREATURE, true);
+ assertNotSubtype(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), SubType.BIRD);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
}
private void assertMorphedFaceDownColor(String info, String needColor) {
@@ -1236,7 +1236,7 @@ public class MorphTest extends CardTestPlayerBase {
.findFirst()
.orElse(null);
Assert.assertNotNull(info + ", server side: can't find morphed permanent", permanent);
- Assert.assertEquals(info + ", server side: wrong name", EmptyNames.FACE_DOWN_CREATURE.toString(), permanent.getName());
+ Assert.assertEquals(info + ", server side: wrong name", EmptyNames.FACE_DOWN_CREATURE.getObjectName(), permanent.getName());
Assert.assertEquals(info + ", server side: wrong color", needColor, permanent.getColor(currentGame).toString());
// client side - controller
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/CastFromGraveyardOnceTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/CastFromGraveyardOnceTest.java
index c862a87d9fb..edbd795c334 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/CastFromGraveyardOnceTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/CastFromGraveyardOnceTest.java
@@ -128,7 +128,7 @@ public class CastFromGraveyardOnceTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/continuous/UnboundFlourishingTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/continuous/UnboundFlourishingTest.java
index eb67cfdf475..1dbeff49706 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/continuous/UnboundFlourishingTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/continuous/UnboundFlourishingTest.java
@@ -50,7 +50,7 @@ public class UnboundFlourishingTest extends CardTestPlayerBase {
// cast with X=3, but double it twice
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Endless One");
setChoice(playerA, "X=3");
- setChoice(playerA, ""); //stack triggers
+ setChoice(playerA, "Whenever you cast a permanent spell"); // x2 triggers from Unbound Flourishing
checkPermanentCounters("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Endless One", CounterType.P1P1, 3 * 2 * 2);
setStrictChooseMode(true);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/ExileAndReturnUnderYourControl.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/ExileAndReturnUnderYourControl.java
index 9fdff5e76f2..6695ce20845 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/control/ExileAndReturnUnderYourControl.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/ExileAndReturnUnderYourControl.java
@@ -105,8 +105,8 @@ public class ExileAndReturnUnderYourControl extends CardTestPlayerBase {
assertExileCount("Secret Plans", 0);
assertPermanentCount(playerA, "Secret Plans", 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 3);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 3);
}
/**
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/GontiLordOfLuxuryEffectTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/GontiLordOfLuxuryEffectTest.java
index 343226076d2..12801f91ccb 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/control/GontiLordOfLuxuryEffectTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/GontiLordOfLuxuryEffectTest.java
@@ -225,6 +225,6 @@ public class GontiLordOfLuxuryEffectTest extends CardTestPlayerBase {
setStopAt(4, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/AlteredEgoTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/AlteredEgoTest.java
index f49fd47ef5f..b2782baca65 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/AlteredEgoTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/AlteredEgoTest.java
@@ -72,7 +72,7 @@ public class AlteredEgoTest extends CardTestPlayerBase {
setChoice(playerB, "X=3");
setChoice(playerB, true); // use copy
setChoice(playerB, "Endless One"); // copy target
- setChoice(playerB, ""); // Order place counters effects
+ setChoice(playerB, "Endless One"); // x2 replacement effects from Endless One
setStrictChooseMode(true);
setStopAt(2, PhaseStep.BEGIN_COMBAT);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/CloneTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/CloneTest.java
index 0ea639c0771..e446e1037e3 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/CloneTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/CloneTest.java
@@ -271,7 +271,7 @@ public class CloneTest extends CardTestPlayerBase {
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
setChoice(playerA, true);
- setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
+ setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStrictChooseMode(true);
setStopAt(3, PhaseStep.BEGIN_COMBAT);
@@ -283,8 +283,8 @@ public class CloneTest extends CardTestPlayerBase {
assertPermanentCount(playerA, "Ixidron", 1);
assertPowerToughness(playerA, "Ixidron", 1, 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2, Filter.ComparisonScope.All);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2, Filter.ComparisonScope.All);
}
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/cost/additional/DefilersTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/cost/additional/DefilersTest.java
index 0bd2e742ca9..eb30f797425 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/cost/additional/DefilersTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/cost/additional/DefilersTest.java
@@ -63,7 +63,7 @@ public class DefilersTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, bear);
setChoice(playerA, true);
setChoice(playerA, true);
- setChoice(playerA, "");
+ setChoice(playerA, "Whenever you cast a green permanent spell"); // x2 triggers from Defiler of Vigor
setStopAt(1, PhaseStep.END_TURN);
setStrictChooseMode(true);
@@ -83,7 +83,7 @@ public class DefilersTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, tusker);
setChoice(playerA, true);
setChoice(playerA, true);
- setChoice(playerA, "");
+ setChoice(playerA, "Whenever you cast a green permanent spell"); // x2 triggers from Defiler of Vigor
setStopAt(1, PhaseStep.END_TURN);
setStrictChooseMode(true);
@@ -103,7 +103,7 @@ public class DefilersTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, goblin);
setChoice(playerA, true);
setChoice(playerA, true);
- setChoice(playerA, "");
+ setChoice(playerA, "Whenever you cast a green permanent spell"); // x2 triggers from red and green defilers
addTarget(playerA, playerB);
setStopAt(1, PhaseStep.END_TURN);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/RoleTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/RoleTest.java
index eb1ebac5d1a..d5d62d9d3f8 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/RoleTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/RoleTest.java
@@ -163,7 +163,7 @@ public class RoleTest extends CardTestPlayerBase {
addTarget(playerA, bear + "^" + wardens);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, become);
- setChoice(playerA, ""); // order triggers
+ setChoice(playerA, "Constellation"); // x2 triggers from Nexus Wardens
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/StarfieldOfNyxTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/StarfieldOfNyxTest.java
index a6e4cdf030e..09528972de7 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/StarfieldOfNyxTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/enchantments/StarfieldOfNyxTest.java
@@ -51,7 +51,7 @@ public class StarfieldOfNyxTest extends CardTestPlayerBase {
execute();
assertGraveyardCount(playerA, "Thopter Spy Network", 0);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(),
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(),
2, 2, Filter.ComparisonScope.All); // the manifested cards
assertPermanentCount(playerA, "Starfield of Nyx", 1);
assertPowerToughness(playerA, "Thopter Spy Network", 4, 4, Filter.ComparisonScope.All);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/GhastlyConscriptionTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/GhastlyConscriptionTest.java
index b516159d9b8..49106437084 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/GhastlyConscriptionTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/GhastlyConscriptionTest.java
@@ -38,7 +38,7 @@ public class GhastlyConscriptionTest extends CardTestPlayerBase {
assertLife(playerB, 20);
assertGraveyardCount(playerA, 2);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/ObscuringAetherTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/ObscuringAetherTest.java
index 6c3931a1a9b..e28c470d73a 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/ObscuringAetherTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/ObscuringAetherTest.java
@@ -33,7 +33,7 @@ public class ObscuringAetherTest extends CardTestPlayerBase {
assertHandCount(playerA, "Obscuring Aether", 0);
assertGraveyardCount(playerA, "Obscuring Aether", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
}
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/PrimordialMistTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/PrimordialMistTest.java
index bd9cbcca7b9..660d1d1a225 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/PrimordialMistTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/PrimordialMistTest.java
@@ -35,7 +35,7 @@ public class PrimordialMistTest extends CardTestPlayerBase {
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Exile a face-down permanent you control");
- setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
+ setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Brine Elemental");
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/TriggerTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/TriggerTest.java
index dac1fd0950f..c7e82c786f3 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/facedown/TriggerTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/facedown/TriggerTest.java
@@ -41,7 +41,7 @@ public class TriggerTest extends CardTestPlayerBase {
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
- castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/PrimalClayTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/PrimalClayTest.java
index 059d81948ed..6177edc5bec 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/PrimalClayTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/entersBattlefield/PrimalClayTest.java
@@ -3,6 +3,7 @@ package org.mage.test.cards.replacement.entersBattlefield;
import mage.abilities.keyword.DefenderAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HasteAbility;
+import mage.constants.EmptyNames;
import mage.constants.PhaseStep;
import mage.constants.SubType;
import mage.constants.Zone;
@@ -220,7 +221,7 @@ public class PrimalClayTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aquamorph+" using Morph");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Savage Swipe");
- addTarget(playerA, ""); // morph
+ addTarget(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand()); // morph
addTarget(playerA, "Siege Mastodon");
// 2/2 becomes 4/4, fights 3/5, neither dies
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/restriction/MeddlingMageTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/restriction/MeddlingMageTest.java
index 969dd1b8b69..c788d07067a 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/restriction/MeddlingMageTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/restriction/MeddlingMageTest.java
@@ -89,7 +89,7 @@ public class MeddlingMageTest extends CardTestPlayerBase {
execute();
assertPermanentCount(playerA, "Meddling Mage", 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertHandCount(playerA, "Meddling Mage", 0);
assertHandCount(playerA, "Ainok Tracker", 0);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/rules/CantCastTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/rules/CantCastTest.java
index 3bd2bd83a44..ec176dec90a 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/rules/CantCastTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/rules/CantCastTest.java
@@ -136,7 +136,7 @@ public class CantCastTest extends CardTestPlayerBase {
}
}
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertHandCount(playerA, "Pine Walker", 1);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/rules/NamePredicateTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/rules/NamePredicateTest.java
index ac8037ba789..08c3d8f2267 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/rules/NamePredicateTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/rules/NamePredicateTest.java
@@ -15,6 +15,9 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
public class NamePredicateTest extends CardTestPlayerBase {
private void assertNamePredicate(String checkName, int needAmount, String needName, boolean ignoreMtgRules) {
+ //Assert.assertNotEquals("", needName); empty strings also testing here, so no need to assert it
+ needName = EmptyNames.replaceTestCommandByObjectName(needName);
+
FilterPermanent filter = new FilterPermanent();
filter.add(new NamePredicate(needName, ignoreMtgRules));
Assert.assertEquals(checkName, needAmount, currentGame.getBattlefield().countAll(filter, playerA.getId(), currentGame));
@@ -33,20 +36,20 @@ public class NamePredicateTest extends CardTestPlayerBase {
execute();
assertPermanentCount(playerA, 3 + 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
// use mtg rules for name searching
assertNamePredicate("by rules - empty choice must return zero", 0, "", false);
- assertNamePredicate("by rules - face down choice must return zero", 0, EmptyNames.FACE_DOWN_CREATURE.toString(), false);
+ assertNamePredicate("by rules - face down choice must return zero", 0, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), false);
assertNamePredicate("by rules - non existing name must return zero", 0, "Island", false);
assertNamePredicate("by rules - existing name must work", 3, "Forest", false);
// use inner engine for name searching (e.g. must find face down permanents with empty names)
- if (!EmptyNames.FACE_DOWN_CREATURE.toString().isEmpty()) {
+ if (!EmptyNames.FACE_DOWN_CREATURE.getObjectName().isEmpty()) {
// if face down permanents gets inner name someday then empty choice must ignore it
assertNamePredicate("by inner - empty choice must return zero", 0, "", true);
}
- assertNamePredicate("by inner - face down choice must work", 1, EmptyNames.FACE_DOWN_CREATURE.toString(), true);
+ assertNamePredicate("by inner - face down choice must work", 1, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), true);
assertNamePredicate("by inner - non existing name must return zero", 0, "Island", true);
assertNamePredicate("by inner - existing name must work", 3, "Forest", true);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/blb/JackdawSaviorTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/blb/JackdawSaviorTest.java
index 651eceefa2d..9bad5634ebc 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/blb/JackdawSaviorTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/blb/JackdawSaviorTest.java
@@ -33,7 +33,7 @@ public class JackdawSaviorTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Damnation");
- setChoice(playerA, ""); //Order triggers
+ setChoice(playerA, "Whenever {this} or another creature you control"); // x2 triggers from Jackdaw Savior
addTarget(playerA, "Jackdaw Savior");
addTarget(playerA, "Memnite");
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/dtk/QarsiDeceiverTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/dtk/QarsiDeceiverTest.java
index 05efa5c57b2..ace5bb1b2a0 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/dtk/QarsiDeceiverTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/dtk/QarsiDeceiverTest.java
@@ -34,7 +34,7 @@ public class QarsiDeceiverTest extends CardTestPlayerBase {
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, mystic + " using Morph");
- checkPT("morph", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ checkPT("morph", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
activateAbility(5, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}{U}: Turn");
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/fut/MuragandaPetroglyphsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/fut/MuragandaPetroglyphsTest.java
index d5fb689cf27..2c46156c061 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/fut/MuragandaPetroglyphsTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/fut/MuragandaPetroglyphsTest.java
@@ -56,8 +56,8 @@ public class MuragandaPetroglyphsTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 4, 4);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 4, 4);
}
@Test
@@ -77,9 +77,9 @@ public class MuragandaPetroglyphsTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
- //assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2); // no boost (permanent have haste)
- assertAbility(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), HasteAbility.getInstance(), true);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
+ //assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestName(), 2, 2); // no boost (permanent have haste)
+ assertAbility(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), HasteAbility.getInstance(), true);
}
@Test
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/m21/AlpineHoundmasterTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/m21/AlpineHoundmasterTest.java
index bb24539b9a5..64008416185 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/m21/AlpineHoundmasterTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/m21/AlpineHoundmasterTest.java
@@ -66,7 +66,6 @@ public class AlpineHoundmasterTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Alpine Houndmaster");
setChoice(playerA, true);
addTarget(playerA, "Igneous Cur^Alpine Watchdog");
- //addTarget(playerA, "");
setStrictChooseMode(true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/AssembleThePlayersTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/AssembleThePlayersTest.java
index 569eb5850d0..1decc61f509 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/AssembleThePlayersTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/AssembleThePlayersTest.java
@@ -48,7 +48,7 @@ public class AssembleThePlayersTest extends CardTestPlayerBase {
setStopAt(3, PhaseStep.END_TURN);
execute();
- assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2, 2);
+ assertPowerToughness(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 2, 2);
assertPowerToughness(playerA, merfolk, 2, 1);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/CrypticCoatTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/CrypticCoatTest.java
index 3a0bfcac749..212877bdcae 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/CrypticCoatTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/mkm/CrypticCoatTest.java
@@ -33,9 +33,9 @@ public class CrypticCoatTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, coat);
- checkPT("Cloaked is 3/2", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 3, 2);
+ checkPT("Cloaked is 3/2", 1, PhaseStep.BEGIN_COMBAT, playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 3, 2);
- castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
+ castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.getTestCommand());
setChoice(playerB, true); // pay for ward
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}{U}{U}: Turn this face-down permanent face up.");
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/PurphorosGodOfTheForgeTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/PurphorosGodOfTheForgeTest.java
index 27cbdcefe33..a6b01128763 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/PurphorosGodOfTheForgeTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/ths/PurphorosGodOfTheForgeTest.java
@@ -1,6 +1,5 @@
package org.mage.test.cards.single.ths;
-import mage.constants.CardType;
import mage.constants.EmptyNames;
import mage.constants.PhaseStep;
import mage.constants.Zone;
@@ -48,7 +47,7 @@ public class PurphorosGodOfTheForgeTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Reach of Shadows", 1);
assertPermanentCount(playerA, "Ashcloud Phoenix", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
Permanent purphorosGodOfTheForge = getPermanent("Purphoros, God of the Forge", playerA);
Assert.assertFalse("Purphoros may not be a creature but it is", purphorosGodOfTheForge.isCreature(currentGame));
@@ -79,7 +78,7 @@ public class PurphorosGodOfTheForgeTest extends CardTestPlayerBase {
execute();
assertPermanentCount(playerA, "Ashcloud Phoenix", 0);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertLife(playerA, 18); // 2 damage from Eidolon of the Great Revel
assertLife(playerB, 18); // 2 damage from Purphoros for the morphed Phoenix
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/vow/CemeteryIlluminatorTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/vow/CemeteryIlluminatorTest.java
index 01107363d6e..1f7838a1efb 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/vow/CemeteryIlluminatorTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/vow/CemeteryIlluminatorTest.java
@@ -98,7 +98,7 @@ public class CemeteryIlluminatorTest extends CardTestPlayerBase {
assertExileCount(playerA, creature, 1);
assertPermanentCount(playerA, ci, 1);
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertPermanentCount(playerA, whetwheel, 0);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/who/ThijarianWitnessTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/who/ThijarianWitnessTest.java
index bd0e93c924a..0d3877ce713 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/who/ThijarianWitnessTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/who/ThijarianWitnessTest.java
@@ -119,7 +119,7 @@ public class ThijarianWitnessTest extends CardTestPlayerBase {
attack(1, playerA, tiny);
block(1, playerB, tiny, tiny);
- setChoice(playerA, ""); //stack triggers
+ setChoice(playerA, "Bear Witness"); // x2 triggers from Thijarian Witness
setStopAt(1, PhaseStep.END_TURN);
execute();
@@ -158,8 +158,8 @@ public class ThijarianWitnessTest extends CardTestPlayerBase {
attack(1, playerA, tiny);
block(1, playerB, tiny, tiny);
- setChoice(playerA, ""); //stack triggers
- setChoice(playerB, "");
+ setChoice(playerA, "Bear Witness"); // x2 triggers from Thijarian Witness
+ setChoice(playerB, "Bear Witness"); // x2 triggers from Thijarian Witness
setStopAt(1, PhaseStep.END_TURN);
execute();
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java
index e9e02ea67b0..66e9f93c3d3 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java
@@ -40,7 +40,7 @@ public class WhisperwoodElementalTest extends CardTestPlayerBase {
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
// Manifested creature from dying Silvercoat Lion
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java
index 57fc6ec6d13..65f5cbcb63e 100644
--- a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java
+++ b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java
@@ -154,6 +154,13 @@ public class TestPlayer implements Player {
}
public void addChoice(String choice) {
+ // prepare face down
+ // how-to fix:
+ // * for face down choices: use EmptyNames.XXX.getTestCommand instead toString
+ // * for replacement/triggers choices: comment choice command, look at logs for triggers list and use starting text in the choice instead empty
+ Assert.assertNotEquals("Choice can't be empty", "", choice);
+ choice = EmptyNames.replaceTestCommandByObjectName(choice);
+
choices.add(choice);
}
@@ -182,6 +189,12 @@ public class TestPlayer implements Player {
}
public void addTarget(String target) {
+ // prepare face down
+ // how-to fix: if it's a face down object then use getTestCommand instead toString
+ Assert.assertNotEquals("Target can't be empty", "", target);
+
+ target = EmptyNames.replaceTestCommandByObjectName(target);
+
targets.add(target);
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/TokenImagesTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/TokenImagesTest.java
index b9e842c270c..8f645ad543f 100644
--- a/Mage.Tests/src/test/java/org/mage/test/serverside/TokenImagesTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/serverside/TokenImagesTest.java
@@ -300,7 +300,7 @@ public class TokenImagesTest extends CardTestPlayerBase {
Assert.assertNotEquals(prefix + " - wrong image number", Integer.valueOf(0), object.getImageNumber());
// characteristic checks instead new test
- Assert.assertEquals(prefix + " - wrong name", EmptyNames.FACE_DOWN_CREATURE.toString(), object.getName());
+ Assert.assertEquals(prefix + " - wrong name", EmptyNames.FACE_DOWN_CREATURE.getObjectName(), object.getName());
Assert.assertEquals(prefix + " - wrong power", 2, object.getPower().getValue());
Assert.assertEquals(prefix + " - wrong toughness", 2, object.getToughness().getValue());
Assert.assertEquals(prefix + " - wrong color", "", object.getColor(currentGame).toString());
@@ -746,7 +746,7 @@ public class TokenImagesTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), faceDownAmount);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), faceDownAmount);
assert_FaceDownMorphImageNumber(Arrays.asList(1, 2, 3));
}
@@ -765,7 +765,7 @@ public class TokenImagesTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), faceDownAmount);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), faceDownAmount);
assert_FaceDownMorphImageNumber(Arrays.asList(1, 2, 3));
}
@@ -844,7 +844,7 @@ public class TokenImagesTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
}
@Test
@@ -856,16 +856,16 @@ public class TokenImagesTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aerie Bowmasters using Morph");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
runCode("on face down", 1, PhaseStep.PRECOMBAT_MAIN, playerA, (info, player, game) -> {
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 1);
assertPermanentCount(playerA, "Aerie Bowmasters", 0);
- Permanent permanent = getPermanent(EmptyNames.FACE_DOWN_CREATURE.toString(), playerA);
+ Permanent permanent = getPermanent(EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), playerA);
assertFaceDownCharacteristics("permanent", permanent, TokenRepository.XMAGE_IMAGE_NAME_FACE_DOWN_MORPH);
});
// face up it and find counter
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{5}{G}: Turn this");
runCode("on face up", 1, PhaseStep.PRECOMBAT_MAIN, playerA, (info, player, game) -> {
- assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 0);
+ assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.getTestCommand(), 0);
assertPermanentCount(playerA, "Aerie Bowmasters", 1);
assertCounterCount(playerA, "Aerie Bowmasters", CounterType.P1P1, 1);
});
diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java
index bcaeb708287..21a35cb89a9 100644
--- a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java
+++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java
@@ -32,7 +32,9 @@ import mage.utils.SystemUtil;
import mage.util.CardUtil;
import mage.view.GameView;
import org.junit.Assert;
+
import static org.junit.Assert.assertTrue;
+
import org.junit.Before;
import org.mage.test.player.PlayerAction;
import org.mage.test.player.TestPlayer;
@@ -349,12 +351,16 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void checkPT(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, Integer power, Integer toughness) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_PT, permanentName, power.toString(), toughness.toString());
}
public void checkDamage(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, Integer damage) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_DAMAGE, permanentName, damage.toString());
}
@@ -367,7 +373,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void checkAbility(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, Class> abilityClass, Boolean mustHave) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_ABILITY, permanentName, abilityClass.getName(), mustHave.toString());
}
@@ -412,12 +420,13 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void checkPermanentCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, Integer count) {
- //Assert.assertNotEquals("", permanentName);
checkPermanentCount(checkName, turnNum, step, player, player, permanentName, count);
}
public void checkPermanentCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, TestPlayer targetPlayer, String permanentName, Integer count) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_PERMANENT_COUNT, targetPlayer.getId().toString(), permanentName, count.toString());
}
@@ -438,17 +447,23 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void checkExileCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String cardName, Integer count) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_EXILE_COUNT, cardName, count.toString());
}
public void checkGraveyardCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String cardName, Integer count) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_GRAVEYARD_COUNT, cardName, count.toString());
}
public void checkLibraryCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String cardName, Integer count) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_LIBRARY_COUNT, cardName, count.toString());
}
@@ -457,32 +472,44 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void checkHandCardCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String cardName, Integer count) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_HAND_CARD_COUNT, cardName, count.toString());
}
public void checkCommandCardCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String cardName, Integer count) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_COMMAND_CARD_COUNT, cardName, count.toString());
}
public void checkEmblemCount(String checkName, int turnNum, PhaseStep step, TestPlayer player, String emblemName, Integer count) {
- //Assert.assertNotEquals("", emblemName);
+ Assert.assertNotEquals("", emblemName);
+ emblemName = EmptyNames.replaceTestCommandByObjectName(emblemName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_EMBLEM_COUNT, emblemName, count.toString());
}
public void checkColor(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, String colors, Boolean mustHave) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_COLOR, permanentName, colors, mustHave.toString());
}
public void checkType(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, CardType type, Boolean mustHave) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_TYPE, permanentName, type.toString(), mustHave.toString());
}
public void checkSubType(String checkName, int turnNum, PhaseStep step, TestPlayer player, String permanentName, SubType subType, Boolean mustHave) {
- //Assert.assertNotEquals("", permanentName);
+ Assert.assertNotEquals("", permanentName);
+ permanentName = EmptyNames.replaceTestCommandByObjectName(permanentName);
+
check(checkName, turnNum, step, player, CHECK_COMMAND_SUBTYPE, permanentName, subType.toString(), mustHave.toString());
}
@@ -850,7 +877,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
@Override
public void assertPowerToughness(Player player, String cardName, int powerNeeded, int toughnessNeeded, Filter.ComparisonScope scope, boolean checkBaseValues) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int count = 0;
int fit = 0;
int foundPower = 0;
@@ -908,7 +937,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
@Override
public void assertAbilities(Player player, String cardName, List abilities)
throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int count = 0;
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents(player.getId())) {
@@ -944,7 +975,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @throws AssertionError
*/
public void assertAbility(Player player, String cardName, Ability ability, boolean mustHave, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int foundCount = 0;
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents(player.getId())) {
@@ -970,6 +1003,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void assertAbilityCount(Player player, String cardName, Class extends Ability> searchedAbility, int amount) {
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents(player.getId())) {
if (isObjectHaveTargetNameOrAlias(player, permanent, cardName)) {
@@ -1010,7 +1046,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
*/
@Override
public void assertPermanentCount(Player player, String cardName, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int actualCount = 0;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
if (permanent.getControllerId().equals(player.getId())) {
@@ -1024,7 +1062,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
@Override
public void assertTokenCount(Player player, String tokenName, int count) throws AssertionError {
- //Assert.assertNotEquals("", tokenName);
+ Assert.assertNotEquals("", tokenName);
+ tokenName = EmptyNames.replaceTestCommandByObjectName(tokenName);
+
int actualCount = 0;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
if (permanent instanceof PermanentToken) {
@@ -1040,7 +1080,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
@Override
public void assertCommandZoneCount(Player player, String commandZoneObjectName, int count) throws AssertionError {
- //Assert.assertNotEquals("", commandZoneObjectName);
+ Assert.assertNotEquals("", commandZoneObjectName);
+ commandZoneObjectName = EmptyNames.replaceTestCommandByObjectName(commandZoneObjectName);
+
int actualCount = 0;
for (CommandObject commandObject : currentGame.getState().getCommand()) {
if (commandObject.getControllerId().equals(player.getId()) && isObjectHaveTargetNameOrAlias(player, commandObject, commandZoneObjectName)) {
@@ -1101,7 +1143,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertCounterCount(Player player, String cardName, String counterName, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
if (isObjectHaveTargetNameOrAlias(player, permanent, cardName) && (player == null || permanent.getControllerId().equals(player.getId()))) {
@@ -1121,7 +1165,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertCounterOnExiledCardCount(String cardName, CounterType type, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
Card found = null;
for (Card card : currentGame.getExile().getAllCards(currentGame)) {
@@ -1154,11 +1200,13 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param mustHave true if creature should have type, false if it should not
*/
public void assertType(String cardName, CardType type, boolean mustHave) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
- if (permanent.getName().equals(cardName)) {
+ if (CardUtil.haveSameNames(permanent.getName(), cardName, true)) {
found = permanent;
break;
}
@@ -1179,7 +1227,6 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param subType a subtype to test for
*/
public void assertType(String cardName, CardType type, SubType subType) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
Permanent found = getPermanent(cardName);
assertTrue("(Battlefield) card type not found (" + cardName + ':' + type + ')', found.getCardType(currentGame).contains(type));
if (subType != null) {
@@ -1194,7 +1241,6 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param type A type to test for
*/
public void assertNotType(String cardName, CardType type) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
Permanent found = getPermanent(cardName);
Assert.assertFalse("(Battlefield) card type found (" + cardName + ':' + type + ')', found.getCardType(currentGame).contains(type));
}
@@ -1206,7 +1252,6 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param subType a subtype to test for
*/
public void assertNotSubtype(String cardName, SubType subType) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
Permanent found = getPermanent(cardName);
if (subType != null) {
Assert.assertFalse("(Battlefield) card sub-type equal (" + cardName + ':' + subType.getDescription() + ')', found.hasSubtype(subType, currentGame));
@@ -1220,7 +1265,6 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param subType a subtype to test for
*/
public void assertSubtype(String cardName, SubType subType) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
Permanent found = getPermanent(cardName);
if (subType != null) {
assertTrue("(Battlefield) card sub-type equal (" + cardName + ':' + subType.getDescription() + ')', found.hasSubtype(subType, currentGame));
@@ -1236,7 +1280,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param mustHave must or not must have that colors
*/
public void assertColor(Player player, String cardName, ObjectColor searchColors, boolean mustHave) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
Assert.assertNotEquals("must setup colors to search", 0, searchColors.getColorCount());
Permanent card = getPermanent(cardName, player);
@@ -1271,7 +1317,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param tapped Whether the permanent is tapped or not
*/
public void assertTapped(String cardName, boolean tapped) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, true);
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
@@ -1299,12 +1347,14 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count The number of these permanents that should be tapped
*/
public void assertTappedCount(String cardName, boolean tapped, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
int tappedAmount = 0;
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
- if (permanent.getName().equals(cardName)) {
+ if (CardUtil.haveSameNames(permanent.getName(), cardName, true)) {
if (permanent.isTapped() == tapped) {
tappedAmount++;
}
@@ -1322,11 +1372,13 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param attacking Whether the permanent is attacking or not
*/
public void assertAttacking(String cardName, boolean attacking) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
Permanent found = null;
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
- if (permanent.getName().equals(cardName)) {
+ if (CardUtil.haveSameNames(permanent.getName(), cardName, true)) {
found = permanent;
}
}
@@ -1355,7 +1407,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertHandCount(Player player, String cardName, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int actual;
if (cardName.contains("//")) { // special logic for checked split cards, because in game logic of card name filtering is different from in test
actual = 0;
@@ -1414,6 +1468,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param subType Expected subtype.
*/
public void assertExiledCardSubtype(String cardName, SubType subType) throws AssertionError {
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
boolean found = false;
for (ExileZone exile : currentGame.getExile().getExileZones()) {
for (Card card : exile.getCards(currentGame)) {
@@ -1433,7 +1490,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertExileCount(String cardName, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int actualCount = 0;
for (ExileZone exile : currentGame.getExile().getExileZones()) {
for (Card card : exile.getCards(currentGame)) {
@@ -1473,12 +1532,14 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertExileCount(Player owner, String cardName, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
int actualCount = 0;
for (ExileZone exile : currentGame.getExile().getExileZones()) {
for (Card card : exile.getCards(currentGame)) {
- if (card.isOwnedBy(owner.getId()) && card.getName().equals(cardName)) {
+ if (card.isOwnedBy(owner.getId()) && CardUtil.haveSameNames(card.getName(), cardName, true)) {
actualCount++;
}
}
@@ -1486,20 +1547,6 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
Assert.assertEquals("(Exile " + owner.getName() + ") Card counts are not equal (" + cardName + ").", count, actualCount);
}
- /**
- * Assert card count in a specific exile zone.
- *
- * @param exileZoneName Name of the exile zone to be counted.
- * @param count Expected count.
- * @throws AssertionError
- */
- public void assertExileZoneCount(String exileZoneName, int count) throws AssertionError {
- ExileZone exileZone = currentGame.getExile().getExileZone(CardUtil.getExileZoneId(exileZoneName, currentGame));
- int actualCount = exileZone == null ? 0 : exileZone.getCards(currentGame).size();
-
- Assert.assertEquals("(Exile \"" + exileZoneName + "\") Card counts are not equal.", count, actualCount);
- }
-
/**
* Assert card count in player's graveyard.
*
@@ -1508,8 +1555,11 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertGraveyardCount(Player player, String cardName, int count) throws AssertionError {
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, true);
- //Assert.assertNotEquals("", cardName);
+
int actualCount = 0;
for (Card card : player.getGraveyard().getCards(currentGame)) {
if (isObjectHaveTargetNameOrAlias(player, card, cardName)) {
@@ -1540,7 +1590,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param count Expected count.
*/
public void assertLibraryCount(Player player, String cardName, int count) throws AssertionError {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
int actualCount = 0;
for (Card card : player.getLibrary().getCards(currentGame)) {
if (CardUtil.haveSameNames(card.getName(), cardName, true)) {
@@ -1614,9 +1666,16 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param isAttached true => assertIsAttachedTo, false => assertIsNotAttachedTo
*/
public void assertAttachedTo(TestPlayer thePlayer, String theAttachment, String thePermanent, boolean isAttached) {
+ Assert.assertNotEquals("", theAttachment);
+ theAttachment = EmptyNames.replaceTestCommandByObjectName(theAttachment);
+ Assert.assertNotEquals("", thePermanent);
+ thePermanent = EmptyNames.replaceTestCommandByObjectName(thePermanent);
+
+ String needPermanent = thePermanent;
+ String needAttachment = theAttachment;
List permanents = currentGame.getBattlefield().getAllActivePermanents().stream()
.filter(permanent -> permanent.isControlledBy(thePlayer.getId()))
- .filter(permanent -> permanent.getName().equals(thePermanent))
+ .filter(permanent -> CardUtil.haveSameNames(permanent.getName(), needPermanent, true))
.collect(Collectors.toList());
assertTrue(theAttachment + " was " + (!isAttached ? "" : "not") + " attached to " + thePermanent,
!isAttached ^
@@ -1624,13 +1683,16 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
.anyMatch(permanent -> permanent.getAttachments()
.stream()
.map(id -> currentGame.getCard(id))
- .map(MageObject::getName)
- .collect(Collectors.toList()).contains(theAttachment)));
+ .filter(Objects::nonNull)
+ .anyMatch(o -> CardUtil.haveSameNames(o.getName(), needAttachment, true))));
}
public Permanent getPermanent(String cardName, UUID controller) {
assertAliaseSupportInActivateCommand(cardName, false);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
Permanent found = null;
Pattern indexedName = Pattern.compile("^([\\w| ]+):(\\d+)$"); // Ends with <:number>
Matcher indexedMatcher = indexedName.matcher(cardName);
@@ -1641,7 +1703,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
index = Integer.parseInt(indexedMatcher.group(2));
}
for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents()) {
- if (permanent.getName().equals(cardName)) {
+ if (CardUtil.haveSameNames(permanent.getName(), cardName, true)) {
if (controller == null || permanent.getControllerId().equals(controller)) {
found = permanent;
if (count != index) {
@@ -1664,13 +1726,17 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void playLand(int turnNum, PhaseStep step, TestPlayer player, String cardName) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
addPlayerAction(player, turnNum, step, ACTIVATE_PLAY + cardName);
}
public void castSpell(int turnNum, PhaseStep step, TestPlayer player, String cardName) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
addPlayerAction(player, turnNum, step, ACTIVATE_CAST + cardName);
}
@@ -1683,14 +1749,18 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void castSpell(int turnNum, PhaseStep step, TestPlayer player, String cardName, Player target) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
// warning, target in spell cast command setups without choose target call
assertAliaseSupportInActivateCommand(cardName, false);
addPlayerAction(player, turnNum, step, ACTIVATE_CAST + cardName + "$targetPlayer=" + target.getName());
}
public void castSpell(int turnNum, PhaseStep step, TestPlayer player, String cardName, Player target, int manaInPool) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
assertAliaseSupportInActivateCommand(cardName, false);
addPlayerAction(player, turnNum, step, ACTIVATE_CAST + cardName + "$targetPlayer=" + target.getName() + "$manaInPool=" + manaInPool);
}
@@ -1810,9 +1880,14 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* warning, do not support cards with target adjusters - use addTarget instead
*/
public void castSpell(int turnNum, PhaseStep step, TestPlayer player, String cardName, String targetName) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+ Assert.assertNotEquals("", targetName);
+ targetName = EmptyNames.replaceTestCommandByObjectName(targetName);
+
assertAliaseSupportInActivateCommand(cardName, true);
assertAliaseSupportInActivateCommand(targetName, true);
+
addPlayerAction(player, turnNum, step, ACTIVATE_CAST + cardName + "$target=" + targetName);
}
@@ -1863,7 +1938,11 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param clause
*/
public void castSpell(int turnNum, PhaseStep step, TestPlayer player, String cardName, String targetName, String spellOnStack, StackClause clause) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+ Assert.assertNotEquals("", targetName);
+ targetName = EmptyNames.replaceTestCommandByObjectName(targetName);
+
assertAliaseSupportInActivateCommand(cardName, true);
assertAliaseSupportInActivateCommand(targetName, true);
assertAliaseSupportInActivateCommand(spellOnStack, false);
@@ -1891,7 +1970,11 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void castSpell(int turnNum, PhaseStep step, TestPlayer player, String cardName, String targetName, String spellOnStack, String spellOnTopOfStack) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+ Assert.assertNotEquals("", targetName);
+ targetName = EmptyNames.replaceTestCommandByObjectName(targetName);
+
assertAliaseSupportInActivateCommand(cardName, false);
assertAliaseSupportInActivateCommand(targetName, false);
assertAliaseSupportInActivateCommand(spellOnStack, false);
@@ -1961,6 +2044,9 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
* @param clause
*/
public void activateAbility(int turnNum, PhaseStep step, TestPlayer player, String ability, String targetName, String spellOnStack, StackClause clause) {
+ Assert.assertNotEquals("", targetName);
+ targetName = EmptyNames.replaceTestCommandByObjectName(targetName);
+
assertAliaseSupportInActivateCommand(ability, true);
assertAliaseSupportInActivateCommand(targetName, true);
StringBuilder sb = new StringBuilder(ACTIVATE_ABILITY).append(ability);
@@ -1986,24 +2072,32 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void addCounters(int turnNum, PhaseStep step, TestPlayer player, String cardName, CounterType type, int count) {
- //Assert.assertNotEquals("", cardName);
+ Assert.assertNotEquals("", cardName);
+ cardName = EmptyNames.replaceTestCommandByObjectName(cardName);
+
addPlayerAction(player, turnNum, step, "addCounters:" + cardName + '$' + type.getName() + '$' + count);
}
public void attack(int turnNum, TestPlayer player, String attacker) {
- //Assert.assertNotEquals("", attacker);
+ Assert.assertNotEquals("", attacker);
+ attacker = EmptyNames.replaceTestCommandByObjectName(attacker);
+
assertAliaseSupportInActivateCommand(attacker, false); // it uses old special notation like card_name:index
addPlayerAction(player, turnNum, PhaseStep.DECLARE_ATTACKERS, "attack:" + attacker);
}
public void attack(int turnNum, TestPlayer player, String attacker, TestPlayer defendingPlayer) {
- //Assert.assertNotEquals("", attacker);
+ Assert.assertNotEquals("", attacker);
+ attacker = EmptyNames.replaceTestCommandByObjectName(attacker);
+
assertAliaseSupportInActivateCommand(attacker, false); // it uses old special notation like card_name:index
addPlayerAction(player, turnNum, PhaseStep.DECLARE_ATTACKERS, "attack:" + attacker + "$defendingPlayer=" + defendingPlayer.getName());
}
public void attack(int turnNum, TestPlayer player, String attacker, String permanent) {
- //Assert.assertNotEquals("", attacker);
+ Assert.assertNotEquals("", attacker);
+ attacker = EmptyNames.replaceTestCommandByObjectName(attacker);
+
assertAliaseSupportInActivateCommand(attacker, false); // it uses old special notation like card_name:index
assertAliaseSupportInActivateCommand(permanent, false);
addPlayerAction(player, turnNum, PhaseStep.DECLARE_ATTACKERS, "attack:" + attacker + "$permanent=" + permanent);
@@ -2014,15 +2108,18 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void block(int turnNum, TestPlayer player, String blocker, String attacker) {
- //Assert.assertNotEquals("", blocker);
- //Assert.assertNotEquals("", attacker);
+ Assert.assertNotEquals("", attacker);
+ attacker = EmptyNames.replaceTestCommandByObjectName(attacker);
+ Assert.assertNotEquals("", blocker);
+ blocker = EmptyNames.replaceTestCommandByObjectName(blocker);
+
assertAliaseSupportInActivateCommand(blocker, false); // it uses old special notation like card_name:index
assertAliaseSupportInActivateCommand(attacker, false);
addPlayerAction(player, turnNum, PhaseStep.DECLARE_BLOCKERS, "block:" + blocker + '$' + attacker);
}
public void blockSkip(int turnNum, TestPlayer player) {
- block(turnNum, player, TestPlayer.BLOCK_SKIP, "");
+ block(turnNum, player, TestPlayer.BLOCK_SKIP, TestPlayer.ATTACK_SKIP);
}
/**
@@ -2193,7 +2290,6 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
}
public void assertDamageReceived(Player player, String cardName, int expected) {
- //Assert.assertNotEquals("", cardName);
Permanent p = getPermanent(cardName, player);
if (p != null) {
Assert.assertEquals("Wrong damage received: ", expected, p.getDamage());
@@ -2239,7 +2335,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
if (player != null) { // TODO: remove null check and replace all null-player calls in tests by player
return testPlayer.hasObjectTargetNameOrAlias(object, nameOrAlias);
} else {
- return object.getName().equals(nameOrAlias);
+ return CardUtil.haveSameNames(object.getName(), nameOrAlias, true);
}
}
diff --git a/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java b/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java
index 4de1ffeba24..e5441d0bca3 100644
--- a/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/testapi/AliasesApiTest.java
@@ -20,32 +20,32 @@ public class AliasesApiTest extends CardTestPlayerBase {
public void test_NamesEquals() {
// empty names for face down cards
Assert.assertTrue(CardUtil.haveEmptyName(""));
- Assert.assertTrue(CardUtil.haveEmptyName(EmptyNames.FACE_DOWN_CREATURE.toString()));
+ Assert.assertTrue(CardUtil.haveEmptyName(EmptyNames.FACE_DOWN_CREATURE.getObjectName()));
Assert.assertFalse(CardUtil.haveEmptyName(" "));
Assert.assertFalse(CardUtil.haveEmptyName("123"));
Assert.assertFalse(CardUtil.haveEmptyName("Sample Name"));
// same names (empty names can't be same)
Assert.assertFalse(CardUtil.haveSameNames("", ""));
- Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_CREATURE.toString(), ""));
- Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_CREATURE.toString(), EmptyNames.FACE_DOWN_CREATURE.toString()));
- Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_TOKEN.toString(), ""));
- Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_TOKEN.toString(), EmptyNames.FACE_DOWN_CREATURE.toString()));
+ Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_CREATURE.getObjectName(), ""));
+ Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_CREATURE.getObjectName(), EmptyNames.FACE_DOWN_CREATURE.getObjectName()));
+ Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_TOKEN.getObjectName(), ""));
+ Assert.assertFalse(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_TOKEN.getObjectName(), EmptyNames.FACE_DOWN_CREATURE.getObjectName()));
Assert.assertTrue(CardUtil.haveSameNames("Name", "Name"));
Assert.assertFalse(CardUtil.haveSameNames("Name", ""));
Assert.assertFalse(CardUtil.haveSameNames("Name", " "));
Assert.assertFalse(CardUtil.haveSameNames("Name", "123"));
- Assert.assertFalse(CardUtil.haveSameNames("Name", EmptyNames.FACE_DOWN_CREATURE.toString()));
+ Assert.assertFalse(CardUtil.haveSameNames("Name", EmptyNames.FACE_DOWN_CREATURE.getObjectName()));
Assert.assertFalse(CardUtil.haveSameNames("Name1", "Name2"));
// ignore mtg rules (empty names must be same)
Assert.assertTrue(CardUtil.haveSameNames("", "", true));
- Assert.assertTrue(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_CREATURE.toString(), EmptyNames.FACE_DOWN_CREATURE.toString(), true));
+ Assert.assertTrue(CardUtil.haveSameNames(EmptyNames.FACE_DOWN_CREATURE.getObjectName(), EmptyNames.FACE_DOWN_CREATURE.getObjectName(), true));
Assert.assertTrue(CardUtil.haveSameNames("Name", "Name", true));
Assert.assertFalse(CardUtil.haveSameNames("Name", "", true));
Assert.assertFalse(CardUtil.haveSameNames("Name", " ", true));
Assert.assertFalse(CardUtil.haveSameNames("Name", "123", true));
- Assert.assertFalse(CardUtil.haveSameNames("Name", EmptyNames.FACE_DOWN_CREATURE.toString(), true));
+ Assert.assertFalse(CardUtil.haveSameNames("Name", EmptyNames.FACE_DOWN_CREATURE.getObjectName(), true));
Assert.assertFalse(CardUtil.haveSameNames("Name1", "Name2", true));
// name with split card
@@ -68,12 +68,12 @@ public class AliasesApiTest extends CardTestPlayerBase {
// normal spell
Assert.assertFalse(CardUtil.haveSameNames(normalSpell, "", currentGame));
Assert.assertFalse(CardUtil.haveSameNames(normalSpell, "Other", currentGame));
- Assert.assertFalse(CardUtil.haveSameNames(normalSpell, EmptyNames.FACE_DOWN_CREATURE.toString(), currentGame));
+ Assert.assertFalse(CardUtil.haveSameNames(normalSpell, EmptyNames.FACE_DOWN_CREATURE.getObjectName(), currentGame));
Assert.assertTrue(CardUtil.haveSameNames(normalSpell, "Balduvian Bears", currentGame));
// face down spell
Assert.assertFalse(CardUtil.haveSameNames(faceDownSpell, "", currentGame));
Assert.assertFalse(CardUtil.haveSameNames(faceDownSpell, "Other", currentGame));
- Assert.assertFalse(CardUtil.haveSameNames(faceDownSpell, EmptyNames.FACE_DOWN_CREATURE.toString(), currentGame));
+ Assert.assertFalse(CardUtil.haveSameNames(faceDownSpell, EmptyNames.FACE_DOWN_CREATURE.getObjectName(), currentGame));
Assert.assertFalse(CardUtil.haveSameNames(faceDownSpell, "Balduvian Bears", currentGame));
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java
index 24ec41ea6f7..099abc9d1ac 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesFaceDownCreatureEffect.java
@@ -251,7 +251,7 @@ public class BecomesFaceDownCreatureEffect extends ContinuousEffectImpl {
String originalObjectInfo = object.toString();
// warning, it's a direct changes to the object (without game state, so no game param here)
- object.setName(EmptyNames.FACE_DOWN_CREATURE.toString());
+ object.setName(EmptyNames.FACE_DOWN_CREATURE.getObjectName());
object.removeAllSuperTypes();
object.getSubtype().clear();
object.removeAllCardTypes();
diff --git a/Mage/src/main/java/mage/cards/CardImpl.java b/Mage/src/main/java/mage/cards/CardImpl.java
index 651baee0613..fa2462a09ed 100644
--- a/Mage/src/main/java/mage/cards/CardImpl.java
+++ b/Mage/src/main/java/mage/cards/CardImpl.java
@@ -870,7 +870,7 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
@Override
public String getLogName() {
if (name.isEmpty()) {
- return GameLog.getNeutralColoredText(EmptyNames.FACE_DOWN_CREATURE.toString());
+ return GameLog.getNeutralColoredText(EmptyNames.FACE_DOWN_CREATURE.getObjectName());
} else {
return GameLog.getColoredObjectIdName(this);
}
diff --git a/Mage/src/main/java/mage/constants/EmptyNames.java b/Mage/src/main/java/mage/constants/EmptyNames.java
index 96696c533c5..350607b8f46 100644
--- a/Mage/src/main/java/mage/constants/EmptyNames.java
+++ b/Mage/src/main/java/mage/constants/EmptyNames.java
@@ -1,33 +1,50 @@
package mage.constants;
+import java.util.Arrays;
+
/**
- *
* @author JayDi85
*/
public enum EmptyNames {
-
- // TODO: make names for that cards and enable Assert.assertNotEquals("", permanentName); for assertXXX tests
// TODO: replace all getName().equals to haveSameNames and haveEmptyName
- FACE_DOWN_CREATURE(""), // "Face down creature"
- FACE_DOWN_TOKEN(""), // "Face down token"
- FACE_DOWN_CARD(""); // "Face down card"
+ FACE_DOWN_CREATURE("", "[face_down_creature]"), // "Face down creature"
+ FACE_DOWN_TOKEN("", "[face_down_token]"), // "Face down token"
+ FACE_DOWN_CARD("", "[face_down_card]"); // "Face down card"
public static final String EMPTY_NAME_IN_LOGS = "face down object";
- private final String cardName;
+ private final String objectName; // for mtg rules
+ private final String testCommand; // for unit tests
- EmptyNames(String cardName) {
- this.cardName = cardName;
+ EmptyNames(String objectName, String testCommand) {
+ this.objectName = objectName;
+ this.testCommand = testCommand;
}
@Override
public String toString() {
- return cardName;
+ return objectName;
+ }
+
+ /**
+ * Face down choice for unit tests (use it instead empty string)
+ */
+ public String getTestCommand() {
+ return this.testCommand;
+ }
+
+ public String getObjectName() {
+ return this.objectName;
}
public static boolean isEmptyName(String objectName) {
- return objectName.equals(FACE_DOWN_CREATURE.toString())
- || objectName.equals(FACE_DOWN_TOKEN.toString())
- || objectName.equals(FACE_DOWN_CARD.toString());
+ return objectName.equals(FACE_DOWN_CREATURE.getObjectName())
+ || objectName.equals(FACE_DOWN_TOKEN.getObjectName())
+ || objectName.equals(FACE_DOWN_CARD.getObjectName());
+ }
+
+ public static String replaceTestCommandByObjectName(String searchCommand) {
+ EmptyNames res = Arrays.stream(values()).filter(e -> e.testCommand.equals(searchCommand)).findAny().orElse(null);
+ return res == null ? searchCommand : res.objectName;
}
}
diff --git a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java
index ab9258fb39e..ccb394e13a4 100644
--- a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java
+++ b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java
@@ -248,7 +248,7 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
public String getName() {
if (name.isEmpty()) {
if (faceDown) {
- return EmptyNames.FACE_DOWN_CREATURE.toString();
+ return EmptyNames.FACE_DOWN_CREATURE.getObjectName();
} else {
return "";
}
diff --git a/Mage/src/main/java/mage/game/permanent/PermanentToken.java b/Mage/src/main/java/mage/game/permanent/PermanentToken.java
index e51643b1d1a..36825c296a0 100644
--- a/Mage/src/main/java/mage/game/permanent/PermanentToken.java
+++ b/Mage/src/main/java/mage/game/permanent/PermanentToken.java
@@ -71,7 +71,7 @@ public class PermanentToken extends PermanentImpl {
@Override
public String getName() {
if (name.isEmpty()) {
- return EmptyNames.FACE_DOWN_TOKEN.toString();
+ return EmptyNames.FACE_DOWN_TOKEN.getObjectName();
} else {
return name;
}
diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java
index c16aeb3f188..1e4628f2e34 100644
--- a/Mage/src/main/java/mage/players/PlayerImpl.java
+++ b/Mage/src/main/java/mage/players/PlayerImpl.java
@@ -5199,7 +5199,7 @@ public abstract class PlayerImpl implements Player, Serializable {
}
visibleName = card.getLogName() + (card.isCopy() ? " (Copy)" : "");
} else {
- visibleName = "a " + GameLog.getNeutralObjectIdName(EmptyNames.FACE_DOWN_CARD.toString(), card.getId());
+ visibleName = "a " + GameLog.getNeutralObjectIdName(EmptyNames.FACE_DOWN_CARD.getObjectName(), card.getId());
}
game.informPlayers(this.getLogName() + " moves " + visibleName
+ (fromZone != null ? " from " + fromZone.toString().toLowerCase(Locale.ENGLISH) : "")