diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/snc/UndercoverOperativeTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/snc/UndercoverOperativeTest.java new file mode 100644 index 000000000000..263f6c886295 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/snc/UndercoverOperativeTest.java @@ -0,0 +1,36 @@ +package org.mage.test.cards.single.snc; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +public class UndercoverOperativeTest extends CardTestPlayerBase { + + @Test + public void testWithAstralDragon() { + addCard(Zone.BATTLEFIELD, playerA, "Princess Yue"); + addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears"); + addCard(Zone.HAND, playerA, "Undercover Operative"); + addCard(Zone.HAND, playerA, "Astral Dragon"); + addCard(Zone.BATTLEFIELD, playerA, "Island", 12); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Undercover Operative"); + setChoice(playerA, true); + setChoice(playerA, "Princess Yue"); + setChoice(playerA, "Princess Yue[no copy]"); + setChoice(playerA, true); + setChoice(playerA, "Balduvian Bears"); + waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Astral Dragon"); + addTarget(playerA, "Moon"); + + setStrictChooseMode(true); + setStopAt(1, PhaseStep.PRECOMBAT_MAIN); + execute(); + + assertPermanentCount(playerA, "Balduvian Bears", 3); + } + +} diff --git a/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java b/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java index a53bf0c135f0..93ebc10e3ade 100644 --- a/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java +++ b/Mage/src/main/java/mage/util/functions/CopyTokenFunction.java @@ -200,6 +200,8 @@ private static void copyToToken(Token target, MageObject sourceObj, Game game) { target.setToughness(sourceObj.getToughness().getBaseValue()); target.setStartingLoyalty(sourceObj.getStartingLoyalty()); target.setStartingDefense(sourceObj.getStartingDefense()); + + target.setCopy(true, sourceObj); } private Token from(Card source, Game game, Spell spell) {