From e5aac728221868177487cd335d01bc513bf9a1bb Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 7 Mar 2021 01:08:40 -0600 Subject: [PATCH] Completing unit tests for the last cards of Errata Pack 2 --- .../errata/set2/Gimli_DotMrErrataTests.java | 36 ++--- .../errata/set3/Aragorn_HttWCErrataTests.java | 124 +++--------------- .../errata/set3/BillThePonyErrataTests.java | 50 +------ 3 files changed, 29 insertions(+), 181 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set2/Gimli_DotMrErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set2/Gimli_DotMrErrataTests.java index 86ba56be1..f97bf32ac 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set2/Gimli_DotMrErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set2/Gimli_DotMrErrataTests.java @@ -23,10 +23,7 @@ public class Gimli_DotMrErrataTests new HashMap() {{ put("gimli", "52_121"); - }}, - GenericCardTestHelper.FellowshipSites, - GenericCardTestHelper.FOTRFrodo, - GenericCardTestHelper.FOTRRing + }} ); } @@ -42,7 +39,7 @@ public class Gimli_DotMrErrataTests @Test - public void GimliHasConcealedOnlyWhileUnderground() throws DecisionResultInvalidException, CardNotFoundException { + public void GimliRemovesTwilightWhenUnderground() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup GenericCardTestHelper scn = GetScenario(); @@ -51,46 +48,29 @@ public class Gimli_DotMrErrataTests scn.StartGame(); - assertFalse(scn.HasKeyword(gimli, Keyword.CONCEALED)); - scn.InsertAdHocModifier(new KeywordModifier(null, Filters.siteNumber(2), Keyword.UNDERGROUND)); scn.FreepsSkipCurrentPhaseAction(); - assertTrue(scn.HasKeyword(gimli, Keyword.CONCEALED)); + // 2 for Frodo/Gimli, 1 for the site, -1 for Gimli's text + assertEquals(2, scn.GetTwilight()); } @Test - public void GimliAbilityTriggersMovingToUnderground() throws DecisionResultInvalidException, CardNotFoundException { + public void GimliDoesNotRemoveTwilightWhenNotUnderground() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup GenericCardTestHelper scn = GetScenario(); - PhysicalCardImpl frodo = scn.GetRingBearer(); PhysicalCardImpl gimli = scn.GetFreepsCard("gimli"); - scn.FreepsMoveCharToTable(gimli); scn.StartGame(); - scn.InsertAdHocModifier(new KeywordModifier(null, Filters.siteNumber(2), Keyword.UNDERGROUND)); - scn.FreepsSkipCurrentPhaseAction(); - assertTrue(scn.FreepsActionAvailable("Optional")); - scn.FreepsAcceptOptionalTrigger(); - assertEquals(1, scn.GetWoundsOn(gimli)); - assertTrue(scn.HasKeyword(frodo, Keyword.CONCEALED)); - - scn.SkipToPhase(Phase.REGROUP); - scn.SkipCurrentPhaseActions(); - scn.ShadowSkipCurrentPhaseAction(); - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); - scn.FreepsChooseToMove(); - - assertFalse(scn.FreepsActionAvailable("Optional")); - //scn.FreepsAcceptOptionalTrigger(); - assertEquals(1, scn.GetWoundsOn(gimli)); - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); + // 2 for Frodo/Gimli, 1 for the site + assertEquals(3, scn.GetTwilight()); } + } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/Aragorn_HttWCErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/Aragorn_HttWCErrataTests.java index e2aa08767..83c4c129a 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/Aragorn_HttWCErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/Aragorn_HttWCErrataTests.java @@ -37,7 +37,6 @@ public class Aragorn_HttWCErrataTests PhysicalCardImpl aragorn = scn.GetFreepsCard("aragorn"); assertTrue(scn.HasKeyword(aragorn, Keyword.RANGER)); - assertFalse(scn.HasKeyword(aragorn, Keyword.CONCEALED)); } @@ -48,139 +47,46 @@ public class Aragorn_HttWCErrataTests PhysicalCardImpl frodo = scn.GetRingBearer(); PhysicalCardImpl aragorn = scn.GetFreepsCard("aragorn"); - PhysicalCardImpl gimli = scn.GetFreepsCard("gimli"); - scn.FreepsMoveCharToTable(aragorn, gimli); + scn.FreepsMoveCharToTable(aragorn); scn.StartGame(); + scn.SetTwilight(2); + scn.FreepsSkipCurrentPhaseAction(); - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); - assertTrue(scn.FreepsActionAvailable("Optional")); - scn.FreepsAcceptOptionalTrigger(); - scn.FreepsChooseCard(frodo); - assertTrue(scn.HasKeyword(frodo, Keyword.CONCEALED)); + // 2 for Frodo/Aragorn, 1 for the site, 2 in the pool, -1 for Aragorn's text + assertEquals(4, scn.GetTwilight()); + scn.SkipToPhase(Phase.REGROUP); scn.SkipCurrentPhaseActions(); scn.ShadowSkipCurrentPhaseAction(); - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); + assertEquals(4, scn.GetTwilight()); scn.FreepsChooseToMove(); - assertFalse(scn.FreepsActionAvailable("Optional")); - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); + // 2 for Frodo/Aragorn, 1 for the site, 4 in the pool, no removal from Aragorn + assertEquals(7, scn.GetTwilight()); } @Test - public void AragornAbilityTriggersBeforeConcealedTwilightIsRemoved() throws DecisionResultInvalidException, CardNotFoundException { + public void AragornAbilityOnlyWorksIfTwilightInPool() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup GenericCardTestHelper scn = GetScenario(); PhysicalCardImpl frodo = scn.GetRingBearer(); PhysicalCardImpl aragorn = scn.GetFreepsCard("aragorn"); - PhysicalCardImpl gimli = scn.GetFreepsCard("gimli"); - scn.FreepsMoveCardToHand(aragorn, gimli); - - scn.StartGame(); - scn.FreepsPlayCard(aragorn); - scn.FreepsPlayCard(gimli); - assertEquals(6, scn.GetTwilight()); - scn.FreepsSkipCurrentPhaseAction(); - - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); - assertFalse(scn.HasKeyword(aragorn, Keyword.CONCEALED)); - assertTrue(scn.FreepsActionAvailable("Optional")); - scn.FreepsAcceptOptionalTrigger(); - scn.FreepsChooseCard(frodo); - assertTrue(scn.HasKeyword(frodo, Keyword.CONCEALED)); - assertTrue(scn.HasKeyword(aragorn, Keyword.CONCEALED)); - //6 from playing aragorn/gimli, 1+1+1 for companions, 1 for the site (King's Tent), -2 for concealed - assertEquals(8, scn.GetTwilight()); - } - - @Test - public void AragornAbilityOffersChoiceOfPrevention() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - GenericCardTestHelper scn = GetScenario(); - - PhysicalCardImpl aragorn = scn.GetFreepsCard("aragorn"); - - PhysicalCardImpl minion = scn.GetShadowCard("minion"); - PhysicalCardImpl tracker = scn.GetShadowCard("tracker"); - scn.FreepsMoveCharToTable(aragorn); - scn.ShadowMoveCardToHand(minion, tracker); scn.StartGame(); + scn.FreepsSkipCurrentPhaseAction(); - assertTrue(scn.FreepsActionAvailable("Optional")); - scn.FreepsAcceptOptionalTrigger(); - assertTrue(scn.ShadowDecisionAvailable("discard a minion (or reveal a tracker")); - scn.ShadowAcceptOptionalTrigger(); - - assertTrue(scn.ShadowAnyDecisionsAvailable()); - assertEquals("Discard a minion from hand", scn.ShadowGetADParamAsList("results").toArray()[0]); - assertEquals("Reveal a tracker from hand", scn.ShadowGetADParamAsList("results").toArray()[1]); - } - - @Test - public void AragornAbilityCanBePreventedWithMinionDiscard() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - GenericCardTestHelper scn = GetScenario(); - - PhysicalCardImpl frodo = scn.GetRingBearer(); - PhysicalCardImpl aragorn = scn.GetFreepsCard("aragorn"); - - PhysicalCardImpl minion = scn.GetShadowCard("minion"); - - scn.FreepsMoveCharToTable(aragorn); - scn.ShadowMoveCardToHand(minion); - - scn.StartGame(); - scn.FreepsSkipCurrentPhaseAction(); - - assertTrue(scn.FreepsActionAvailable("Optional")); - scn.FreepsAcceptOptionalTrigger(); - assertTrue(scn.ShadowDecisionAvailable("discard a minion")); - assertEquals(1, scn.GetShadowHandCount()); - assertEquals(0, scn.GetShadowDiscardCount()); - scn.ShadowAcceptOptionalTrigger(); - assertEquals(0, scn.GetShadowHandCount()); - assertEquals(1, scn.GetShadowDiscardCount()); - assertFalse(scn.FreepsAnyDecisionsAvailable()); - - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); - } - - @Test - public void AragornAbilityCanBePreventedWithTrackerReveal() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - GenericCardTestHelper scn = GetScenario(); - - PhysicalCardImpl frodo = scn.GetRingBearer(); - PhysicalCardImpl aragorn = scn.GetFreepsCard("aragorn"); - - PhysicalCardImpl tracker = scn.GetShadowCard("tracker"); - - scn.FreepsMoveCharToTable(aragorn); - scn.ShadowMoveCardToHand(tracker); - - scn.StartGame(); - scn.FreepsSkipCurrentPhaseAction(); - - assertTrue(scn.FreepsActionAvailable("Optional")); - scn.FreepsAcceptOptionalTrigger(); - assertTrue(scn.ShadowDecisionAvailable("reveal a tracker")); - assertEquals(1, scn.GetShadowHandCount()); - scn.ShadowAcceptOptionalTrigger(); - assertEquals(1, scn.GetShadowHandCount()); - assertTrue(scn.ShadowDecisionAvailable("Choose action to perform")); - scn.ShadowChooseMultipleChoiceOption("Reveal a tracker"); - - assertFalse(scn.FreepsAnyDecisionsAvailable()); - assertFalse(scn.HasKeyword(frodo, Keyword.CONCEALED)); + // 2 for Frodo/Aragorn, 1 for the site, no removal since there was nothing in the pool before moving + assertEquals(3, scn.GetTwilight()); } + + } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/BillThePonyErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/BillThePonyErrataTests.java index f68db8760..6efc95e76 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/BillThePonyErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set3/BillThePonyErrataTests.java @@ -52,27 +52,9 @@ public class BillThePonyErrataTests Assert.assertTrue(scn.IsAttachedTo(bill, sam)); } - @Test - public void BillHealsWhenPlayed() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - GenericCardTestHelper scn = GetSimpleScenario(); - - PhysicalCardImpl bill = scn.GetFreepsCard("bill"); - PhysicalCardImpl sam = scn.GetFreepsCard("sam"); - - scn.FreepsMoveCardToHand(bill, sam); - - scn.StartGame(); - - scn.FreepsPlayCard(sam); - scn.FreepsUseCardAction(sam); - assertEquals(1, scn.GetWoundsOn(sam)); - scn.FreepsPlayCard(bill); - assertEquals(0, scn.GetWoundsOn(sam)); - } @Test - public void BillGrantsConcealed() throws DecisionResultInvalidException, CardNotFoundException { + public void BillReducesTwilight() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup GenericCardTestHelper scn = GetSimpleScenario(); @@ -85,9 +67,12 @@ public class BillThePonyErrataTests scn.FreepsPlayCard(sam); scn.FreepsPlayCard(bill); - assertTrue(scn.HasKeyword(sam, Keyword.CONCEALED)); + + // 2 for Frodo/Sam, 1 for the site, -1 for Bill + assertEquals(2, scn.GetTwilight()); } + @Test public void BillDiscardedWhenMovingToUnderground() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup @@ -106,32 +91,9 @@ public class BillThePonyErrataTests scn.FreepsPlayCard(bill); scn.FreepsSkipCurrentPhaseAction(); - //Get a timing choice between resolving concealed or discarding bill - scn.FreepsResolveActionOrder("Concealed"); + assertFalse(scn.IsAttachedTo(bill, sam)); assertEquals(Zone.DISCARD, bill.getZone()); } - @Test - public void BillHealsWhenPlayedAtUnderground() throws DecisionResultInvalidException, CardNotFoundException { - //Pre-game setup - GenericCardTestHelper scn = GetSimpleScenario(); - - PhysicalCardImpl bill = scn.GetFreepsCard("bill"); - PhysicalCardImpl sam = scn.GetFreepsCard("sam"); - - scn.FreepsMoveCardToHand(bill, sam); - - scn.InsertAdHocModifier(new KeywordModifier(null, CardType.SITE, Keyword.UNDERGROUND)); - - scn.StartGame(); - - scn.FreepsPlayCard(sam); - scn.FreepsUseCardAction(sam); - assertEquals(1, scn.GetWoundsOn(sam)); - scn.FreepsPlayCard(bill); - assertEquals(0, scn.GetWoundsOn(sam)); - assertFalse(scn.IsAttachedTo(bill, sam)); - assertEquals(Zone.DISCARD, bill.getZone()); - } }