Lathspell errata test cases
This commit is contained in:
@@ -8,8 +8,7 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
public class Card_V2_013_Tests
|
public class Card_V2_013_Tests
|
||||||
{
|
{
|
||||||
@@ -18,8 +17,16 @@ public class Card_V2_013_Tests
|
|||||||
return new GenericCardTestHelper(
|
return new GenericCardTestHelper(
|
||||||
new HashMap<>()
|
new HashMap<>()
|
||||||
{{
|
{{
|
||||||
put("card", "102_13");
|
put("gandalf", "102_13");
|
||||||
// put other cards in here as needed for the test case
|
put("shadowfax", "4_100");
|
||||||
|
|
||||||
|
put("valiant1", "65_14");
|
||||||
|
put("valiant2", "7_224");
|
||||||
|
put("valiant3", "18_99");
|
||||||
|
|
||||||
|
put("shotgun", "1_231");
|
||||||
|
put("marauder", "10_76");
|
||||||
|
put("grishnakh", "5_100");
|
||||||
}},
|
}},
|
||||||
GenericCardTestHelper.FellowshipSites,
|
GenericCardTestHelper.FellowshipSites,
|
||||||
GenericCardTestHelper.FOTRFrodo,
|
GenericCardTestHelper.FOTRFrodo,
|
||||||
@@ -49,7 +56,7 @@ public class Card_V2_013_Tests
|
|||||||
|
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var card = scn.GetFreepsCard("gandalf");
|
||||||
|
|
||||||
assertEquals("Gandalf", card.getBlueprint().getTitle());
|
assertEquals("Gandalf", card.getBlueprint().getTitle());
|
||||||
assertEquals("Lathspell", card.getBlueprint().getSubtitle());
|
assertEquals("Lathspell", card.getBlueprint().getSubtitle());
|
||||||
@@ -65,22 +72,153 @@ public class Card_V2_013_Tests
|
|||||||
assertEquals(Signet.THEODEN, card.getBlueprint().getSignet());
|
assertEquals(Signet.THEODEN, card.getBlueprint().getSignet());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment any @Test markers below once this is ready to be used
|
@Test
|
||||||
//@Test
|
public void GandalfMakesMountedCompanionsValiant() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
public void GandalfTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
|
||||||
//Pre-game setup
|
//Pre-game setup
|
||||||
var scn = GetScenario();
|
var scn = GetScenario();
|
||||||
|
|
||||||
var card = scn.GetFreepsCard("card");
|
var gandalf = scn.GetFreepsCard("gandalf");
|
||||||
scn.FreepsMoveCardToHand(card);
|
var shadowfax = scn.GetFreepsCard("shadowfax");
|
||||||
scn.FreepsMoveCharToTable(card);
|
scn.FreepsMoveCharToTable(gandalf);
|
||||||
scn.FreepsMoveCardToSupportArea(card);
|
scn.FreepsMoveCardToHand(shadowfax);
|
||||||
scn.FreepsMoveCardToDiscard(card);
|
|
||||||
scn.FreepsMoveCardsToTopOfDeck(card);
|
|
||||||
|
|
||||||
scn.StartGame();
|
scn.StartGame();
|
||||||
scn.FreepsPlayCard(card);
|
|
||||||
|
|
||||||
assertEquals(4, scn.GetTwilight());
|
assertFalse(scn.hasKeyword(gandalf, Keyword.VALIANT));
|
||||||
|
scn.FreepsPlayCard(shadowfax);
|
||||||
|
assertEquals(Zone.ATTACHED, shadowfax.getZone());
|
||||||
|
assertEquals(gandalf, shadowfax.getAttachedTo());
|
||||||
|
assertTrue(scn.hasKeyword(gandalf, Keyword.VALIANT));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void GandalfCannotRespondWith2ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var gandalf = scn.GetFreepsCard("gandalf");
|
||||||
|
scn.FreepsMoveCharToTable(gandalf);
|
||||||
|
scn.FreepsMoveCharToTable("valiant1", "valiant2");
|
||||||
|
|
||||||
|
var shotgun = scn.GetShadowCard("shotgun");
|
||||||
|
scn.ShadowMoveCharToTable(shotgun);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
|
||||||
|
scn.AddBurdens(4);
|
||||||
|
|
||||||
|
scn.SkipToPhase(Phase.MANEUVER);
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
assertTrue(scn.ShadowActionAvailable(shotgun));
|
||||||
|
|
||||||
|
scn.ShadowUseCardAction(shotgun);
|
||||||
|
assertFalse(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void GandalfCanBlockMinionAbilityAndWoundItIf3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var gandalf = scn.GetFreepsCard("gandalf");
|
||||||
|
var valiant1 = scn.GetFreepsCard("valiant1");
|
||||||
|
scn.FreepsMoveCharToTable(gandalf);
|
||||||
|
scn.FreepsMoveCharToTable("valiant1", "valiant2", "valiant3");
|
||||||
|
|
||||||
|
var shotgun = scn.GetShadowCard("shotgun");
|
||||||
|
scn.ShadowMoveCharToTable(shotgun);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
|
||||||
|
scn.AddBurdens(4);
|
||||||
|
|
||||||
|
scn.SkipToPhase(Phase.MANEUVER);
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
assertTrue(scn.ShadowActionAvailable(shotgun));
|
||||||
|
|
||||||
|
assertEquals(0, scn.GetWoundsOn(valiant1));
|
||||||
|
assertEquals(0, scn.GetWoundsOn(gandalf));
|
||||||
|
assertEquals(0, scn.GetWoundsOn(shotgun));
|
||||||
|
scn.ShadowUseCardAction(shotgun);
|
||||||
|
//Enquea's own exertion
|
||||||
|
assertEquals(1, scn.GetWoundsOn(shotgun));
|
||||||
|
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
scn.FreepsAcceptOptionalTrigger();
|
||||||
|
assertEquals(0, scn.GetWoundsOn(valiant1));
|
||||||
|
assertEquals(1, scn.GetWoundsOn(gandalf));
|
||||||
|
//Lathspell's retribution no longer wounds, just blocks
|
||||||
|
assertEquals(1, scn.GetWoundsOn(shotgun));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void GandalfCanBlockGrishnakhAndWoundHimIf3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var gandalf = scn.GetFreepsCard("gandalf");
|
||||||
|
var valiant1 = scn.GetFreepsCard("valiant1");
|
||||||
|
scn.FreepsMoveCharToTable(gandalf);
|
||||||
|
scn.FreepsMoveCharToTable("valiant1", "valiant2", "valiant3");
|
||||||
|
|
||||||
|
var grishnakh = scn.GetShadowCard("grishnakh");
|
||||||
|
scn.ShadowMoveCharToTable(grishnakh);
|
||||||
|
scn.ShadowMoveCharToTable("marauder");
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
|
||||||
|
assertTrue(scn.ShadowActionAvailable(grishnakh));
|
||||||
|
|
||||||
|
assertEquals(0, scn.GetWoundsOn(gandalf));
|
||||||
|
assertEquals(0, scn.GetWoundsOn(grishnakh));
|
||||||
|
assertEquals(0, scn.GetShadowHandCount());
|
||||||
|
assertEquals(6, scn.GetShadowDeckCount());
|
||||||
|
scn.ShadowUseCardAction(grishnakh);
|
||||||
|
//Grishnakh's own exertions
|
||||||
|
assertEquals(2, scn.GetWoundsOn(grishnakh));
|
||||||
|
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
scn.FreepsAcceptOptionalTrigger();
|
||||||
|
assertEquals(1, scn.GetWoundsOn(gandalf));
|
||||||
|
//Lathspell's retribution no longer wounds
|
||||||
|
assertEquals(Zone.SHADOW_CHARACTERS, grishnakh.getZone());
|
||||||
|
assertEquals(2, scn.GetWoundsOn(grishnakh));
|
||||||
|
assertEquals(0, scn.GetShadowHandCount());
|
||||||
|
assertEquals(6, scn.GetShadowDeckCount());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void GandalfCannotBlockSkirmishAbilityEvenWith3ValiantCompanions() throws DecisionResultInvalidException, CardNotFoundException {
|
||||||
|
//Pre-game setup
|
||||||
|
var scn = GetScenario();
|
||||||
|
|
||||||
|
var gandalf = scn.GetFreepsCard("gandalf");
|
||||||
|
var valiant1 = scn.GetFreepsCard("valiant1");
|
||||||
|
scn.FreepsMoveCharToTable(gandalf);
|
||||||
|
scn.FreepsMoveCharToTable("valiant1", "valiant2", "valiant3");
|
||||||
|
|
||||||
|
var marauder = scn.GetShadowCard("marauder");
|
||||||
|
scn.ShadowMoveCharToTable(marauder);
|
||||||
|
|
||||||
|
scn.StartGame();
|
||||||
|
|
||||||
|
scn.SkipToAssignments();
|
||||||
|
scn.FreepsAssignToMinions(valiant1, marauder);
|
||||||
|
scn.FreepsResolveSkirmish(valiant1);
|
||||||
|
|
||||||
|
scn.FreepsPassCurrentPhaseAction();
|
||||||
|
assertTrue(scn.ShadowActionAvailable(marauder));
|
||||||
|
|
||||||
|
assertEquals(0, scn.GetWoundsOn(gandalf));
|
||||||
|
assertEquals(0, scn.GetWoundsOn(marauder));
|
||||||
|
assertEquals(9, scn.getStrength(marauder));
|
||||||
|
scn.ShadowUseCardAction(marauder);
|
||||||
|
//marauder's own exertion
|
||||||
|
assertEquals(1, scn.GetWoundsOn(marauder));
|
||||||
|
assertFalse(scn.FreepsHasOptionalTriggerAvailable());
|
||||||
|
assertEquals(0, scn.GetWoundsOn(gandalf));
|
||||||
|
assertEquals(1, scn.GetWoundsOn(marauder));
|
||||||
|
//Ability went through with no objection
|
||||||
|
assertEquals(12, scn.getStrength(marauder));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user