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 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) : "")