Completing unit tests for the last cards of Errata Pack 2
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user