diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_074_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_074_Tests.java index 635404ea6..fb9505dcd 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_074_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set03/Card_03_074_Tests.java @@ -17,8 +17,10 @@ public class Card_03_074_Tests return new GenericCardTestHelper( new HashMap<>() {{ - put("card", "3_74"); - // put other cards in here as needed for the test case + put("raider", "3_74"); + put("demands", "2_40"); + + put("celeborn", "1_34"); }}, GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, @@ -46,7 +48,7 @@ public class Card_03_074_Tests var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); + var card = scn.GetFreepsCard("raider"); assertEquals("Uruk Raider", card.getBlueprint().getTitle()); assertNull(card.getBlueprint().getSubtitle()); @@ -63,18 +65,27 @@ public class Card_03_074_Tests assertEquals(5, card.getBlueprint().getSiteNumber()); } - // Uncomment any @Test markers below once this is ready to be used - //@Test - public void UrukRaiderTest1() throws DecisionResultInvalidException, CardNotFoundException { + @Test + public void UrukRaiderIsStrengthPlus3AndFierceWhileAllyIsInDeadPile() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); - scn.FreepsMoveCardToHand(card); + var celeborn = scn.GetFreepsCard("celeborn"); + scn.FreepsMoveCardToHand(celeborn); + + var raider = scn.GetShadowCard("raider"); + scn.ShadowMoveCharToTable(raider); scn.StartGame(); - scn.FreepsPlayCard(card); - assertEquals(2, scn.GetTwilight()); + assertEquals(Zone.HAND, celeborn.getZone()); + assertEquals(6, scn.GetStrength(raider)); + assertFalse(scn.hasKeyword(raider, Keyword.FIERCE)); + + scn.FreepsMoveCardToDeadPile(celeborn); + + assertEquals(Zone.DEAD, celeborn.getZone()); + assertEquals(9, scn.GetStrength(raider)); + assertTrue(scn.hasKeyword(raider, Keyword.FIERCE)); } } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java index 72c40c7bd..f57e16710 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_074_ErrataTests.java @@ -17,8 +17,10 @@ public class Card_03_074_ErrataTests return new GenericCardTestHelper( new HashMap<>() {{ - put("card", "53_74"); - // put other cards in here as needed for the test case + put("raider", "53_74"); + put("demands", "2_40"); + + put("rosie", "1_309"); }}, GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, @@ -48,7 +50,7 @@ public class Card_03_074_ErrataTests var scn = GetScenario(); - var card = scn.GetFreepsCard("card"); + var card = scn.GetFreepsCard("raider"); assertEquals("Uruk Raider", card.getBlueprint().getTitle()); assertNull(card.getBlueprint().getSubtitle()); @@ -65,6 +67,110 @@ public class Card_03_074_ErrataTests assertEquals(5, card.getBlueprint().getSiteNumber()); } + @Test + public void UrukRaiderIsStrengthPlus3AndFierceWhileAllyIsInDeadPile() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.FreepsMoveCardToHand(rosie); + + var raider = scn.GetShadowCard("raider"); + scn.ShadowMoveCharToTable(raider); + + scn.StartGame(); + + assertEquals(Zone.HAND, rosie.getZone()); + assertEquals(6, scn.GetStrength(raider)); + assertFalse(scn.hasKeyword(raider, Keyword.FIERCE)); + + scn.FreepsMoveCardToDeadPile(rosie); + + assertEquals(Zone.DEAD, rosie.getZone()); + assertEquals(9, scn.GetStrength(raider)); + assertTrue(scn.hasKeyword(raider, Keyword.FIERCE)); + } + + @Test + public void UrukRaiderCannotRespondToAllyExertionIfNoOtherIsengardCard() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.FreepsMoveCardToSupportArea(rosie); + + var raider = scn.GetShadowCard("raider"); + scn.ShadowMoveCharToTable(raider); + + scn.StartGame(); + + assertEquals(0, scn.GetWoundsOn(raider)); + assertEquals(0, scn.GetWoundsOn(rosie)); + assertEquals(Zone.SUPPORT, rosie.getZone()); + + scn.FreepsUseCardAction(rosie); + assertFalse(scn.ShadowHasOptionalTriggerAvailable()); + + assertEquals(Zone.SUPPORT, rosie.getZone()); + assertEquals(0, scn.GetWoundsOn(raider)); + assertEquals(1, scn.GetWoundsOn(rosie)); + } + + @Test + public void UrukRaiderCannotRespondToAllyExertionIfSpotsOtherIsengardCardButCannotExert() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.FreepsMoveCardToSupportArea(rosie); + + var raider = scn.GetShadowCard("raider"); + var demands = scn.GetShadowCard("demands"); + scn.ShadowMoveCharToTable(raider); + scn.ShadowMoveCardToSupportArea(demands); + scn.AddWoundsToChar(raider, 1); + + scn.StartGame(); + + assertEquals(1, scn.GetWoundsOn(raider)); + assertEquals(0, scn.GetWoundsOn(rosie)); + assertEquals(Zone.SUPPORT, rosie.getZone()); + + scn.FreepsUseCardAction(rosie); + assertFalse(scn.ShadowHasOptionalTriggerAvailable()); + + assertEquals(Zone.SUPPORT, rosie.getZone()); + assertEquals(1, scn.GetWoundsOn(raider)); + assertEquals(1, scn.GetWoundsOn(rosie)); + } + + @Test + public void UrukRaiderCanSpotAnotherIsengardCardAndExertToWoundExertingAlly() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + var scn = GetScenario(); + + var rosie = scn.GetFreepsCard("rosie"); + scn.FreepsMoveCardToSupportArea(rosie); + + var raider = scn.GetShadowCard("raider"); + var demands = scn.GetShadowCard("demands"); + scn.ShadowMoveCharToTable(raider); + scn.ShadowMoveCardToSupportArea(demands); + + scn.StartGame(); + + assertEquals(0, scn.GetWoundsOn(raider)); + assertEquals(0, scn.GetWoundsOn(rosie)); + assertEquals(Zone.SUPPORT, rosie.getZone()); + + scn.FreepsUseCardAction(rosie); + assertTrue(scn.ShadowHasOptionalTriggerAvailable()); + scn.ShadowAcceptOptionalTrigger(); + + assertEquals(Zone.DEAD, rosie.getZone()); + assertEquals(1, scn.GetWoundsOn(raider)); + } + // Uncomment any @Test markers below once this is ready to be used //@Test public void UrukRaiderTest1() throws DecisionResultInvalidException, CardNotFoundException {