Completing unit tests for the last cards of Errata Pack 2

This commit is contained in:
Christian 'ketura' McCarty
2021-03-07 01:08:40 -06:00
parent 19cab722c4
commit e5aac72822
3 changed files with 29 additions and 181 deletions

View File

@@ -23,10 +23,7 @@ public class Gimli_DotMrErrataTests
new HashMap<String, String>()
{{
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());
}
}

View File

@@ -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());
}
}

View File

@@ -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());
}
}