mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
[Simulated AI] Add actual test coverage for SpellAbilityPicker logic.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1170,6 +1170,7 @@ forge-gui-desktop/src/test/java/forge/RunTest.java -text
|
|||||||
forge-gui-desktop/src/test/java/forge/TinyTest.java -text
|
forge-gui-desktop/src/test/java/forge/TinyTest.java -text
|
||||||
forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java -text
|
forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java -text
|
||||||
forge-gui-desktop/src/test/java/forge/ai/simulation/SimulationTestCase.java -text
|
forge-gui-desktop/src/test/java/forge/ai/simulation/SimulationTestCase.java -text
|
||||||
|
forge-gui-desktop/src/test/java/forge/ai/simulation/SpellAbilityPickerTest.java -text
|
||||||
forge-gui-desktop/src/test/java/forge/deck/generate/Generate2ColorDeckTest.java -text
|
forge-gui-desktop/src/test/java/forge/deck/generate/Generate2ColorDeckTest.java -text
|
||||||
forge-gui-desktop/src/test/java/forge/deck/generate/Generate3ColorDeckTest.java -text
|
forge-gui-desktop/src/test/java/forge/deck/generate/Generate3ColorDeckTest.java -text
|
||||||
forge-gui-desktop/src/test/java/forge/deck/generate/Generate5ColorDeckTest.java -text
|
forge-gui-desktop/src/test/java/forge/deck/generate/Generate5ColorDeckTest.java -text
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package forge.ai.simulation;
|
||||||
|
|
||||||
|
import forge.game.Game;
|
||||||
|
import forge.game.card.Card;
|
||||||
|
import forge.game.phase.PhaseType;
|
||||||
|
import forge.game.player.Player;
|
||||||
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.game.zone.ZoneType;
|
||||||
|
|
||||||
|
public class SpellAbilityPickerTest extends SimulationTestCase {
|
||||||
|
public void testPickingLethalDamage() {
|
||||||
|
Game game = initAndCreateGame();
|
||||||
|
Player p = game.getPlayers().get(1);
|
||||||
|
|
||||||
|
addCard("Mountain", p);
|
||||||
|
addCardToZone("Shock", p, ZoneType.Hand);
|
||||||
|
|
||||||
|
Player opponent = game.getPlayers().get(0);
|
||||||
|
addCard("Runeclaw Bear", opponent);
|
||||||
|
opponent.setLife(2, null);
|
||||||
|
|
||||||
|
game.getPhaseHandler().devModeSet(PhaseType.MAIN1, p);
|
||||||
|
game.getAction().checkStateEffects(true);
|
||||||
|
|
||||||
|
SpellAbilityPicker picker = new SpellAbilityPicker(game, p);
|
||||||
|
SpellAbility sa = picker.chooseSpellAbilityToPlay(null);
|
||||||
|
assertNotNull(sa);
|
||||||
|
assertNull(sa.getTargetCard());
|
||||||
|
assertEquals(opponent, sa.getTargets().getFirstTargetedPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testPickingKillingCreature() {
|
||||||
|
Game game = initAndCreateGame();
|
||||||
|
Player p = game.getPlayers().get(1);
|
||||||
|
|
||||||
|
addCard("Mountain", p);
|
||||||
|
addCardToZone("Shock", p, ZoneType.Hand);
|
||||||
|
|
||||||
|
Player opponent = game.getPlayers().get(0);
|
||||||
|
Card bearCard = addCard("Runeclaw Bear", opponent);
|
||||||
|
opponent.setLife(20, null);
|
||||||
|
|
||||||
|
game.getPhaseHandler().devModeSet(PhaseType.MAIN1, p);
|
||||||
|
game.getAction().checkStateEffects(true);
|
||||||
|
|
||||||
|
SpellAbilityPicker picker = new SpellAbilityPicker(game, p);
|
||||||
|
SpellAbility sa = picker.chooseSpellAbilityToPlay(null);
|
||||||
|
assertNotNull(sa);
|
||||||
|
assertEquals(bearCard, sa.getTargetCard());
|
||||||
|
assertNull(sa.getTargets().getFirstTargetedPlayer());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user