diff --git a/.gitattributes b/.gitattributes index 049c6648983..dec53c965bb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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/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/SpellAbilityPickerTest.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/Generate5ColorDeckTest.java -text diff --git a/forge-gui-desktop/src/test/java/forge/ai/simulation/SpellAbilityPickerTest.java b/forge-gui-desktop/src/test/java/forge/ai/simulation/SpellAbilityPickerTest.java new file mode 100644 index 00000000000..667311cb6eb --- /dev/null +++ b/forge-gui-desktop/src/test/java/forge/ai/simulation/SpellAbilityPickerTest.java @@ -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()); + } +}