V2 Gandalf's Staff test cases

This commit is contained in:
Christian 'ketura' McCarty
2025-04-17 20:28:07 -05:00
parent 84cb4cfaac
commit 2c501449ed

View File

@@ -1,18 +1,14 @@
package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02; package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.PossessionClass;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test; import org.junit.Test;
import java.util.HashMap; import java.util.HashMap;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.*;
import static org.junit.Assert.assertTrue;
public class Card_V2_077_Tests public class Card_V2_077_Tests
{ {
@@ -21,8 +17,13 @@ public class Card_V2_077_Tests
return new GenericCardTestHelper( return new GenericCardTestHelper(
new HashMap<>() new HashMap<>()
{{ {{
put("card", "102_77"); put("crutch", "102_77");
// put other cards in here as needed for the test case put("gandalf", "1_364");
put("glamdring", "1_75");
put("glamdring2", "6_31");
put("betrayal", "3_29");
put("shotgun", "1_231");
}}, }},
GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.FOTRFrodo,
@@ -50,7 +51,7 @@ public class Card_V2_077_Tests
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var card = scn.GetFreepsCard("crutch");
assertEquals("Gandalf's Staff", card.getBlueprint().getTitle()); assertEquals("Gandalf's Staff", card.getBlueprint().getTitle());
assertEquals("Old Man's Crutch", card.getBlueprint().getSubtitle()); assertEquals("Old Man's Crutch", card.getBlueprint().getSubtitle());
@@ -63,29 +64,71 @@ public class Card_V2_077_Tests
assertEquals(1, card.getBlueprint().getVitality()); assertEquals(1, card.getBlueprint().getVitality());
} }
// Uncomment any @Test markers below once this is ready to be used @Test
//@Test public void GandalfsStaffDiscardsWeaponsOnBearerBothBeforeAndAfterPlay() throws DecisionResultInvalidException, CardNotFoundException {
public void GandalfsStaffTest1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup //Pre-game setup
var scn = GetScenario(); var scn = GetScenario();
var card = scn.GetFreepsCard("card"); var crutch = scn.GetFreepsCard("crutch");
scn.FreepsMoveCardToHand(card); var glamdring = scn.GetFreepsCard("glamdring");
scn.FreepsMoveCharToTable(card); var glamdring2 = scn.GetFreepsCard("glamdring2");
scn.FreepsMoveCardToSupportArea(card);
scn.FreepsMoveCardToDiscard(card);
scn.FreepsMoveCardsToTopOfDeck(card);
// var card = scn.GetShadowCard("card"); var gandalf = scn.GetFreepsCard("gandalf");
// scn.ShadowMoveCardToHand(card); scn.FreepsMoveCardToHand(crutch, glamdring2);
// scn.ShadowMoveCharToTable(card); scn.FreepsMoveCharToTable(gandalf);
// scn.ShadowMoveCardToSupportArea(card); scn.AttachCardsTo(gandalf, glamdring);
// scn.ShadowMoveCardToDiscard(card);
// scn.ShadowMoveCardsToTopOfDeck(card);
scn.StartGame(); scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(2, scn.GetTwilight()); assertEquals(Zone.HAND, crutch.getZone());
assertEquals(Zone.ATTACHED, glamdring.getZone());
scn.FreepsPlayCard(crutch);
assertEquals(Zone.ATTACHED, crutch.getZone());
assertEquals(Zone.DISCARD, glamdring.getZone());
assertEquals(Zone.HAND, glamdring2.getZone());
scn.FreepsPlayCard(glamdring2);
assertEquals(Zone.DISCARD, glamdring2.getZone());
}
@Test
public void GandalfsStaffCanWoundAMinionWhenExertingOncePerPhase() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var gandalf = scn.GetFreepsCard("gandalf");
var crutch = scn.GetFreepsCard("crutch");
var betrayal = scn.GetFreepsCard("betrayal");
scn.FreepsMoveCharToTable(gandalf);
scn.FreepsAttachCardsTo(gandalf, crutch);
scn.FreepsMoveCardToSupportArea(betrayal);
var shotgun = scn.GetShadowCard("shotgun");
scn.ShadowMoveCharToTable(shotgun);
scn.StartGame();
scn.AddBurdens(4);
scn.SkipToPhase(Phase.MANEUVER);
assertEquals(0, scn.GetWoundsOn(gandalf));
assertEquals(0, scn.GetWoundsOn(shotgun));
scn.FreepsUseCardAction(betrayal);
assertEquals(1, scn.GetWoundsOn(gandalf));
assertEquals(0, scn.GetWoundsOn(shotgun));
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetWoundsOn(shotgun));
scn.ShadowPassCurrentPhaseAction();
//Staff doesn't trigger a second time
scn.FreepsUseCardAction(betrayal);
assertEquals(2, scn.GetWoundsOn(gandalf));
assertEquals(1, scn.GetWoundsOn(shotgun));
assertFalse(scn.FreepsHasOptionalTriggerAvailable());
} }
} }