diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set04/Card_04_174_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set04/Card_04_174_Tests.java
index 66b0b7f8c..219ef4712 100644
--- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set04/Card_04_174_Tests.java
+++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set04/Card_04_174_Tests.java
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.official.set04;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
-import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -18,8 +17,11 @@ public class Card_04_174_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
- put("card", "4_174");
- // put other cards in here as needed for the test case
+ put("staff", "4_174");
+ put("saruman", "3_69");
+ put("orc", "3_58");
+
+ put("sam", "1_311");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -40,12 +42,14 @@ public class Card_04_174_Tests
* Type: Artifact
* Subtype: Staff
* Strength: 2
- * Game Text: Plays on Saruman.
He is fierce and damage +1.
Maneuver: Make the first sentence of Saruman's game text not apply until the regroup phase.
+ * Game Text: Plays on Saruman.
+ * He is fierce and damage +1.
+ * Maneuver: Make the first sentence of Saruman's game text not apply until the regroup phase.
*/
var scn = GetScenario();
- var card = scn.GetFreepsCard("card");
+ var card = scn.GetFreepsCard("staff");
assertEquals("Saruman's Staff", card.getBlueprint().getTitle());
assertEquals("Wizard's Device", card.getBlueprint().getSubtitle());
@@ -58,18 +62,76 @@ public class Card_04_174_Tests
assertEquals(2, card.getBlueprint().getStrength());
}
- // Uncomment any @Test markers below once this is ready to be used
- //@Test
- public void SarumansStaffTest1() throws DecisionResultInvalidException, CardNotFoundException {
+ @Test
+ public void SarumansStaffMakesSarumanDamagePlus1AndFierce() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
- var card = scn.GetFreepsCard("card");
- scn.FreepsMoveCardToHand(card);
+ var saruman = scn.GetShadowCard("saruman");
+ var staff = scn.GetShadowCard("staff");
+ scn.ShadowMoveCharToTable(saruman);
+ scn.ShadowMoveCardToHand(staff);
scn.StartGame();
- scn.FreepsPlayCard(card);
+ scn.FreepsPassCurrentPhaseAction();
+
+ assertFalse(scn.hasKeyword(saruman, Keyword.DAMAGE));
+ assertFalse(scn.hasKeyword(saruman, Keyword.FIERCE));
+
+ scn.ShadowPlayCard(staff);
+ assertTrue(scn.hasKeyword(saruman, Keyword.DAMAGE));
+ assertTrue(scn.hasKeyword(saruman, Keyword.FIERCE));
+ }
+
+ @Test
+ public void SarumansStaffManeuverActionPermitsSarumanToSkirmish() throws DecisionResultInvalidException, CardNotFoundException {
+ //Pre-game setup
+ var scn = GetScenario();
+
+ var saruman = scn.GetShadowCard("saruman");
+ var staff = scn.GetShadowCard("staff");
+ scn.ShadowMoveCharToTable(saruman);
+ scn.AttachCardsTo(saruman, staff);
+
+ scn.StartGame();
+ scn.SkipToPhase(Phase.MANEUVER);
+ scn.FreepsPassCurrentPhaseAction();
+
+ assertTrue(scn.ShadowActionAvailable(staff));
+ scn.ShadowUseCardAction(staff);
+ scn.SkipToAssignments();
+
+ assertEquals(1, scn.FreepsGetShadowAssignmentTargetCount());
+ }
+
+ @Test
+ public void SarumansStaffDoesNotImpedeAbilityToUseSarumansAssignmentAbility() throws DecisionResultInvalidException, CardNotFoundException {
+ //Pre-game setup
+ var scn = GetScenario();
+
+ var saruman = scn.GetShadowCard("saruman");
+ var staff = scn.GetShadowCard("staff");
+ var orc = scn.GetShadowCard("orc");
+ scn.ShadowMoveCharToTable(saruman, orc);
+ scn.AttachCardsTo(saruman, staff);
+
+ var sam = scn.GetFreepsCard("sam");
+ scn.FreepsMoveCharToTable(sam);
+
+ scn.StartGame();
+ scn.SkipToPhase(Phase.MANEUVER);
+ scn.FreepsPassCurrentPhaseAction();
+ scn.ShadowUseCardAction(staff);
+ scn.SkipToPhase(Phase.ASSIGNMENT);
+ scn.FreepsPassCurrentPhaseAction();
+
+ assertTrue(scn.ShadowActionAvailable(saruman));
+ scn.ShadowUseCardAction(saruman);
+ scn.ShadowChooseCard(saruman);
+ scn.FreepsChooseNo();
+
+ assertTrue(scn.IsCharAssigned(saruman));
+ assertTrue(scn.IsCharAssigned(sam));
- assertEquals(2, scn.GetTwilight());
}
}