Adding errata test cases for the three elf allies

This commit is contained in:
Christian 'ketura' McCarty
2025-04-17 17:10:37 -05:00
parent 5240ee1063
commit 84cb4cfaac
3 changed files with 305 additions and 67 deletions

View File

@@ -10,6 +10,7 @@ import java.util.HashMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
public class Card_03_014_ErrataTests
{
@@ -18,8 +19,13 @@ public class Card_03_014_ErrataTests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "53_14");
// put other cards in here as needed for the test case
put("erestor", "53_14");
put("arwen", "3_7");
put("enquea", "1_231");
put("hate", "1_250");
put("orc", "1_271");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +53,7 @@ public class Card_03_014_ErrataTests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("erestor");
assertEquals("Erestor", card.getBlueprint().getTitle());
assertEquals("Chief Advisor to Elrond", card.getBlueprint().getSubtitle());
@@ -62,29 +68,147 @@ public class Card_03_014_ErrataTests
assertTrue(card.getBlueprint().hasAllyHome(new AllyHome(SitesBlock.FELLOWSHIP, 3)));
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void ErestorTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void ErestorSpotsAnElfToPlay() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.FreepsMoveCharToTable(card);
scn.FreepsMoveCardToSupportArea(card);
scn.FreepsMoveCardToDiscard(card);
scn.FreepsMoveCardsToTopOfDeck(card);
// var card = scn.GetShadowCard("card");
// scn.ShadowMoveCardToHand(card);
// scn.ShadowMoveCharToTable(card);
// scn.ShadowMoveCardToSupportArea(card);
// scn.ShadowMoveCardToDiscard(card);
// scn.ShadowMoveCardsToTopOfDeck(card);
var erestor = scn.GetFreepsCard("erestor");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCardToHand(arwen, erestor);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(2, scn.GetTwilight());
assertFalse(scn.FreepsPlayAvailable(erestor));
scn.FreepsPlayCard(arwen);
assertTrue(scn.FreepsPlayAvailable(erestor));
}
@Test
public void ErestorCanBlockEnquea() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var erestor = scn.GetFreepsCard("erestor");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen);
scn.FreepsMoveCardToSupportArea(erestor);
var enquea = scn.GetShadowCard("enquea");
scn.ShadowMoveCharToTable(enquea);
scn.StartGame();
scn.AddBurdens(5);
scn.SkipToPhase(Phase.MANEUVER);
scn.FreepsPassCurrentPhaseAction();
assertEquals(0, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(0, scn.GetWoundsOn(enquea));
scn.ShadowUseCardAction(enquea);
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(1, scn.GetWoundsOn(enquea));
}
@Test
public void ErestorCanBlockEnqueaSkirmishWin() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var erestor = scn.GetFreepsCard("erestor");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen);
scn.FreepsMoveCardToSupportArea(erestor);
var enquea = scn.GetShadowCard("enquea");
scn.ShadowMoveCharToTable(enquea);
scn.StartGame();
scn.AddBurdens(5);
scn.SkipToAssignments();
scn.FreepsAssignAndResolve(arwen, enquea);
assertEquals(0, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(0, scn.GetWoundsOn(enquea));
scn.PassSkirmishActions();
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(0, scn.GetWoundsOn(enquea));
}
@Test
public void ErestorCanBlockHate() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var erestor = scn.GetFreepsCard("erestor");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen);
scn.FreepsMoveCardToSupportArea(erestor);
var hate = scn.GetShadowCard("hate");
var orc = scn.GetShadowCard("orc");
scn.ShadowMoveCharToTable(orc);
scn.ShadowMoveCardToHand(hate);
scn.StartGame();
scn.SkipToPhase(Phase.MANEUVER);
scn.FreepsPassCurrentPhaseAction();
assertEquals(0, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(0, scn.GetWoundsOn(orc));
scn.ShadowPlayCard(hate);
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(1, scn.GetWoundsOn(orc));
}
@Test
public void ErestorCanBlockSauronOrcSkirmishWin() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var erestor = scn.GetFreepsCard("erestor");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen);
scn.FreepsMoveCardToSupportArea(erestor);
var orc = scn.GetShadowCard("orc");
scn.ShadowMoveCharToTable(orc);
scn.StartGame();
scn.AddBurdens(5);
scn.SkipToAssignments();
scn.FreepsAssignAndResolve(arwen, orc);
assertEquals(0, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(0, scn.GetWoundsOn(orc));
scn.PassSkirmishActions();
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
scn.FreepsAcceptOptionalTrigger();
assertEquals(1, scn.GetWoundsOn(erestor));
assertEquals(0, scn.GetWoundsOn(arwen));
assertEquals(0, scn.GetWoundsOn(orc));
}
}

View File

@@ -8,8 +8,7 @@ import org.junit.Test;
import java.util.HashMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
public class Card_03_020_ErrataTests
{
@@ -18,8 +17,15 @@ public class Card_03_020_ErrataTests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "53_20");
// put other cards in here as needed for the test case
put("golradir", "53_20");
put("erestor", "53_14");
put("saelbeth", "53_25");
put("arwen", "3_7");
put("nazgul", "12_161");
put("uruk", "1_151");
put("orc", "1_178");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +53,7 @@ public class Card_03_020_ErrataTests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("golradir");
assertEquals("Golradir", card.getBlueprint().getTitle());
assertEquals("Councilor of Imladris", card.getBlueprint().getSubtitle());
@@ -62,29 +68,81 @@ public class Card_03_020_ErrataTests
assertTrue(card.getBlueprint().hasAllyHome(new AllyHome(SitesBlock.FELLOWSHIP, 3)));
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void GolradirTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void GolradirSpotsAnElfToPlay() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.FreepsMoveCharToTable(card);
scn.FreepsMoveCardToSupportArea(card);
scn.FreepsMoveCardToDiscard(card);
scn.FreepsMoveCardsToTopOfDeck(card);
// var card = scn.GetShadowCard("card");
// scn.ShadowMoveCardToHand(card);
// scn.ShadowMoveCharToTable(card);
// scn.ShadowMoveCardToSupportArea(card);
// scn.ShadowMoveCardToDiscard(card);
// scn.ShadowMoveCardsToTopOfDeck(card);
var golradir = scn.GetFreepsCard("golradir");
var erestor = scn.GetFreepsCard("erestor");
var saelbeth = scn.GetFreepsCard("saelbeth");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCardToHand(arwen, golradir);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(2, scn.GetTwilight());
assertFalse(scn.FreepsPlayAvailable(golradir));
scn.FreepsPlayCard(arwen);
assertTrue(scn.FreepsPlayAvailable(golradir));
}
@Test
public void GolradirExertsToMakeANonOrcStrengthMinus1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var golradir = scn.GetFreepsCard("golradir");
var erestor = scn.GetFreepsCard("erestor");
var saelbeth = scn.GetFreepsCard("saelbeth");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen, golradir);
var nazgul = scn.GetShadowCard("nazgul");
scn.ShadowMoveCharToTable(nazgul);
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignAndResolve(arwen, nazgul);
assertEquals(0, scn.GetWoundsOn(golradir));
assertEquals(10, scn.GetStrength(nazgul));
assertTrue(scn.FreepsActionAvailable(golradir));
scn.FreepsUseCardAction(golradir);
assertEquals(1, scn.GetWoundsOn(golradir));
assertEquals(9, scn.GetStrength(nazgul));
}
@Test
public void GolradirExertsToMakeAnOrcStrengthMinus1PerElf() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var golradir = scn.GetFreepsCard("golradir");
var erestor = scn.GetFreepsCard("erestor");
var saelbeth = scn.GetFreepsCard("saelbeth");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen);
scn.FreepsMoveCardToSupportArea(golradir, erestor, saelbeth);
var orc = scn.GetShadowCard("orc");
scn.ShadowMoveCharToTable(orc);
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignAndResolve(arwen, orc);
assertEquals(0, scn.GetWoundsOn(golradir));
assertEquals(5, scn.GetStrength(orc));
assertTrue(scn.FreepsActionAvailable(golradir));
scn.FreepsUseCardAction(golradir);
assertEquals(1, scn.GetWoundsOn(golradir));
// -4 for 4 elves
assertEquals(1, scn.GetStrength(orc));
}
}

View File

@@ -8,8 +8,7 @@ import org.junit.Test;
import java.util.HashMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
public class Card_03_025_ErrataTests
{
@@ -18,8 +17,15 @@ public class Card_03_025_ErrataTests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "53_25");
// put other cards in here as needed for the test case
put("golradir", "53_20");
put("erestor", "53_14");
put("saelbeth", "53_25");
put("arwen", "3_7");
put("nazgul", "12_161");
put("uruk", "1_151");
put("orc", "1_178");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -48,7 +54,7 @@ public class Card_03_025_ErrataTests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("saelbeth");
assertEquals("Saelbeth", card.getBlueprint().getTitle());
assertEquals("Elven Councilor", card.getBlueprint().getSubtitle());
@@ -63,29 +69,79 @@ public class Card_03_025_ErrataTests
assertTrue(card.getBlueprint().hasAllyHome(new AllyHome(SitesBlock.FELLOWSHIP, 3)));
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void SaelbethTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void SaelbethSpotsAnElfToPlay() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
scn.FreepsMoveCharToTable(card);
scn.FreepsMoveCardToSupportArea(card);
scn.FreepsMoveCardToDiscard(card);
scn.FreepsMoveCardsToTopOfDeck(card);
// var card = scn.GetShadowCard("card");
// scn.ShadowMoveCardToHand(card);
// scn.ShadowMoveCharToTable(card);
// scn.ShadowMoveCardToSupportArea(card);
// scn.ShadowMoveCardToDiscard(card);
// scn.ShadowMoveCardsToTopOfDeck(card);
var golradir = scn.GetFreepsCard("golradir");
var erestor = scn.GetFreepsCard("erestor");
var saelbeth = scn.GetFreepsCard("saelbeth");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCardToHand(arwen, saelbeth);
scn.StartGame();
scn.FreepsPlayCard(card);
assertEquals(2, scn.GetTwilight());
assertFalse(scn.FreepsPlayAvailable(saelbeth));
scn.FreepsPlayCard(arwen);
assertTrue(scn.FreepsPlayAvailable(saelbeth));
}
@Test
public void SaelbethExertsToMakeANonUrukStrengthMinus1() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var golradir = scn.GetFreepsCard("golradir");
var erestor = scn.GetFreepsCard("erestor");
var saelbeth = scn.GetFreepsCard("saelbeth");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen, saelbeth);
var nazgul = scn.GetShadowCard("nazgul");
scn.ShadowMoveCharToTable(nazgul);
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignAndResolve(arwen, nazgul);
assertEquals(0, scn.GetWoundsOn(saelbeth));
assertEquals(10, scn.GetStrength(nazgul));
assertTrue(scn.FreepsActionAvailable(saelbeth));
scn.FreepsUseCardAction(saelbeth);
assertEquals(1, scn.GetWoundsOn(saelbeth));
assertEquals(9, scn.GetStrength(nazgul));
}
@Test
public void SaelbethExertsToMakeAnOrcStrengthMinus1PerElf() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var golradir = scn.GetFreepsCard("golradir");
var erestor = scn.GetFreepsCard("erestor");
var saelbeth = scn.GetFreepsCard("saelbeth");
var arwen = scn.GetFreepsCard("arwen");
scn.FreepsMoveCharToTable(arwen);
scn.FreepsMoveCardToSupportArea(golradir, erestor, saelbeth);
var uruk = scn.GetShadowCard("uruk");
scn.ShadowMoveCharToTable(uruk);
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignAndResolve(arwen, uruk);
assertEquals(0, scn.GetWoundsOn(saelbeth));
assertEquals(5, scn.GetStrength(uruk));
assertTrue(scn.FreepsActionAvailable(saelbeth));
scn.FreepsUseCardAction(saelbeth);
assertEquals(1, scn.GetWoundsOn(saelbeth));
// -4 for 4 elves
assertEquals(1, scn.GetStrength(uruk));
}
}