mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Add a test related to #3156
This commit is contained in:
@@ -10,6 +10,8 @@ import forge.game.zone.ZoneType;
|
|||||||
import org.testng.AssertJUnit;
|
import org.testng.AssertJUnit;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public class AutoPaymentTest extends SimulationTest {
|
public class AutoPaymentTest extends SimulationTest {
|
||||||
|
|
||||||
@@ -46,4 +48,37 @@ public class AutoPaymentTest extends SimulationTest {
|
|||||||
Card elfCopy = findCardWithName(simGame, llanowar);
|
Card elfCopy = findCardWithName(simGame, llanowar);
|
||||||
AssertJUnit.assertNotNull(elfCopy);
|
AssertJUnit.assertNotNull(elfCopy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void payWithTreasuresOverPhyrexianAltar() {
|
||||||
|
Game game = initAndCreateGame();
|
||||||
|
Player p = game.getPlayers().get(1);
|
||||||
|
|
||||||
|
String squire = "Squire";
|
||||||
|
|
||||||
|
List<Card> squires = addCards(squire, 6, p);
|
||||||
|
Card altar = addCard("Phyrexian Altar", p);
|
||||||
|
List<Card> treasures = addTokens("c_a_treasure_sac", 6, p);
|
||||||
|
|
||||||
|
String shivan = "Shivan Dragon";
|
||||||
|
Card dragon = addCardToZone(shivan, p, ZoneType.Hand);
|
||||||
|
|
||||||
|
game.getPhaseHandler().devModeSet(PhaseType.MAIN1, p);
|
||||||
|
game.getAction().checkStateEffects(true);
|
||||||
|
|
||||||
|
GameSimulator sim = createSimulator(game, p);
|
||||||
|
int score = sim.simulateSpellAbility(dragon.getFirstSpellAbility()).value;
|
||||||
|
|
||||||
|
AssertJUnit.assertTrue(score > 0);
|
||||||
|
Game simGame = sim.getSimulatedGameState();
|
||||||
|
|
||||||
|
Card dragonBF = findCardWithName(simGame, shivan);
|
||||||
|
AssertJUnit.assertNotNull(dragonBF);
|
||||||
|
|
||||||
|
Card squireCopy = findCardWithName(simGame, squire);
|
||||||
|
AssertJUnit.assertNotNull(squireCopy);
|
||||||
|
|
||||||
|
Card treasureCopy = findCardWithName(simGame, "Treasure Token");
|
||||||
|
AssertJUnit.assertNull(treasureCopy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package forge.ai.simulation;
|
package forge.ai.simulation;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -160,6 +161,16 @@ public class SimulationTest {
|
|||||||
return Card.fromPaperCard(token, p, p.getGame());
|
return Card.fromPaperCard(token, p, p.getGame());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected List<Card> addTokens(String name, int amount, Player p) {
|
||||||
|
List<Card> cards = new ArrayList<>();
|
||||||
|
|
||||||
|
for(int i = 0; i < amount; i++) {
|
||||||
|
cards.add(addToken(name, p));
|
||||||
|
}
|
||||||
|
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
|
||||||
protected Card addToken(String name, Player p) {
|
protected Card addToken(String name, Player p) {
|
||||||
Card c = createToken(name, p);
|
Card c = createToken(name, p);
|
||||||
// card need a new Timestamp otherwise Static Abilities might collide
|
// card need a new Timestamp otherwise Static Abilities might collide
|
||||||
@@ -167,5 +178,4 @@ public class SimulationTest {
|
|||||||
p.getZone(ZoneType.Battlefield).add(c);
|
p.getZone(ZoneType.Battlefield).add(c);
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user