diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_014_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_014_ErrataTests.java index fe444efc1..efe58ea4a 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_014_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_014_ErrataTests.java @@ -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)); + } + + } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_020_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_020_ErrataTests.java index 5366f5533..1c3685285 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_020_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_020_ErrataTests.java @@ -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)); + } + + } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_025_ErrataTests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_025_ErrataTests.java index b9db85081..25a4949dc 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_025_ErrataTests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/errata/set03/Card_03_025_ErrataTests.java @@ -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)); } }