From 1a6bbfa8733daaa0e1d8d1c1878ad7547b9ce96d Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sun, 8 Oct 2023 17:53:33 -0400 Subject: [PATCH] add test for Role token not created if target has protection (#11281) --- .../test/cards/enchantments/RoleTest.java | 26 ++++++++++++++++--- .../CreateRoleAttachedTargetEffect.java | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) 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 5123d699009..9e528bbf336 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 @@ -11,9 +11,9 @@ import org.mage.test.serverside.base.CardTestPlayerBase; */ public class RoleTest extends CardTestPlayerBase { - private static final String courtier = "Cursed Courtier"; - private static final String rage = "Monstrous Rage"; - private static final String wardens = "Nexus Wardens"; + private static final String courtier = "Cursed Courtier"; // When Cursed Courtier enters the battlefield, create a Cursed Role token attached to it. + private static final String rage = "Monstrous Rage"; // Target creature gets +2/+0 until end of turn. Create a Monster Role token attached to it. + private static final String wardens = "Nexus Wardens"; // Whenever an enchantment enters the battlefield under your control, you gain 2 life. private static final String murder = "Murder"; @Test @@ -130,4 +130,24 @@ public class RoleTest extends CardTestPlayerBase { assertGraveyardCount(playerA, murder, 1); assertLife(playerA, 20); } + + @Test + public void testProtectionNotCreated() { + String firstwing = "Azorius First-Wing"; // 2/2 Flying, protection from enchantments + addCard(Zone.BATTLEFIELD, playerA, firstwing); + addCard(Zone.BATTLEFIELD, playerA, wardens); + addCard(Zone.HAND, playerA, rage); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, rage, firstwing); + + setStrictChooseMode(true); + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertGraveyardCount(playerA, rage, 1); + assertPowerToughness(playerA, firstwing, 4, 2); + assertLife(playerA, 20); + } + } diff --git a/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java index cc964203c26..14caf73cb3e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java @@ -39,7 +39,7 @@ public class CreateRoleAttachedTargetEffect extends OneShotEffect { } Token token = roleType.createToken(permanent, game, source); // The token may not be created, for instance if the creature has protection from enchantments. - return token.getLastAddedTokenIds().size() > 0; + return !token.getLastAddedTokenIds().isEmpty(); } @Override