From 4011ff7fcaaf031c6dbb4e81d4b2fb310e88e4c5 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Thu, 17 Apr 2025 14:02:07 -0500 Subject: [PATCH] V1 Rivendell Gateway errata test cases --- .../pc/vsets/set_v01/Card_V1_059_Tests.java | 141 ++++++++++++++---- 1 file changed, 115 insertions(+), 26 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v01/Card_V1_059_Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v01/Card_V1_059_Tests.java index fe8334911..33136252a 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v01/Card_V1_059_Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vsets/set_v01/Card_V1_059_Tests.java @@ -3,6 +3,7 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v01; import com.gempukku.lotro.cards.GenericCardTestHelper; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; import org.junit.Test; @@ -16,12 +17,22 @@ public class Card_V1_059_Tests protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException { return new GenericCardTestHelper( - new HashMap<>() - {{ - put("card", "101_59"); - // put other cards in here as needed for the test case + new HashMap<>() {{ + put("merry", "1_302"); + put("legolas", "1_50"); + put("boromir", "3_122"); + }}, + new HashMap<>() {{ + put("site1", "1_319"); + put("site2", "1_327"); + put("site3", "101_59"); + put("site4", "1_343"); + put("site5", "1_349"); + put("site6", "1_350"); + put("site7", "1_353"); + put("site8", "1_356"); + put("site9", "1_360"); }}, - GenericCardTestHelper.FellowshipSites, GenericCardTestHelper.FOTRFrodo, GenericCardTestHelper.RulingRing ); @@ -46,41 +57,119 @@ public class Card_V1_059_Tests var scn = GetScenario(); //Use this once you have set the deck up properly - //var card = scn.GetFreepsSite(3); - var card = scn.GetFreepsCard("card"); + var card = scn.GetFreepsSite(3); assertEquals("Rivendell Gateway", card.getBlueprint().getTitle()); assertNull(card.getBlueprint().getSubtitle()); assertFalse(card.getBlueprint().isUnique()); assertEquals(CardType.SITE, card.getBlueprint().getCardType()); assertTrue(scn.hasKeyword(card, Keyword.SANCTUARY)); + assertFalse(scn.hasKeyword(card, Keyword.FOREST)); assertEquals(0, card.getBlueprint().getTwilightCost()); assertEquals(3, card.getBlueprint().getSiteNumber()); } - // Uncomment any @Test markers below once this is ready to be used - //@Test - public void RivendellGatewayTest1() throws DecisionResultInvalidException, CardNotFoundException { + @Test + public void FellowshipActionExertsCompanionOfOneCultureToPumpAnotherUntilEndOfTurn() throws DecisionResultInvalidException, CardNotFoundException { //Pre-game setup - var scn = GetScenario(); + GenericCardTestHelper 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 frodo = scn.GetRingBearer(); + var legolas = scn.GetFreepsCard("legolas"); + var merry = scn.GetFreepsCard("merry"); + var boromir = scn.GetFreepsCard("boromir"); + scn.FreepsMoveCharToTable(legolas, merry, boromir); scn.StartGame(); - scn.FreepsPlayCard(card); - assertEquals(0, scn.GetTwilight()); + scn.SkipToSite(3); + var site3 = scn.GetCurrentSite(); + assertEquals(3, scn.GetStrength(merry)); + assertTrue(scn.FreepsActionAvailable(site3)); + + scn.FreepsUseCardAction(site3); + assertTrue(scn.FreepsDecisionAvailable("Choose cards to exert")); + assertEquals(3, scn.FreepsGetCardChoiceCount()); //Frodo is not allowed + + scn.FreepsChooseCard(legolas); + assertTrue(scn.FreepsDecisionAvailable("Choose a companion")); + assertEquals(2, scn.FreepsGetCardChoiceCount()); //Legolas can only boost merry or boromir, not frodo + scn.FreepsChooseCard(merry); + + assertEquals(4, scn.GetStrength(merry)); + + scn.FreepsUseCardAction(site3); + assertTrue(scn.FreepsDecisionAvailable("Choose cards to exert")); + assertEquals(3, scn.FreepsGetCardChoiceCount()); + scn.FreepsChooseCard(legolas); + assertTrue(scn.FreepsDecisionAvailable("Choose a companion")); + assertEquals(2, scn.FreepsGetCardChoiceCount()); //Legolas can only boost merry or boromir, not frodo + scn.FreepsChooseCard(merry); + + assertEquals(5, scn.GetStrength(merry)); + + scn.SkipToPhase(Phase.REGROUP); + assertEquals(5, scn.GetStrength(merry)); + scn.PassCurrentPhaseActions(); + scn.ShadowDeclineReconciliation(); + scn.FreepsChooseToMove(); + + scn.SkipToPhase(Phase.REGROUP); + assertEquals(5, scn.GetStrength(merry)); + } + + @Test + public void FellowshipActionLimitedTo6PerTurn() throws DecisionResultInvalidException, CardNotFoundException { + //Pre-game setup + GenericCardTestHelper scn = GetScenario(); + + var merry = scn.GetFreepsCard("merry"); + var boromir = scn.GetFreepsCard("boromir"); + scn.FreepsMoveCharToTable(boromir, merry); + + scn.StartGame(); + + scn.SkipToSite(3); + var site3 = scn.GetCurrentSite(); + assertEquals(3, scn.GetStrength(merry)); + + assertTrue(scn.FreepsActionAvailable(site3)); + scn.FreepsUseCardAction(site3); + scn.FreepsChooseCard(boromir); + assertEquals(4, scn.GetStrength(merry)); + scn.FreepsUseCardAction(boromir); + + assertTrue(scn.FreepsActionAvailable(site3)); + scn.FreepsUseCardAction(site3); + scn.FreepsChooseCard(boromir); + assertEquals(5, scn.GetStrength(merry)); + scn.FreepsUseCardAction(boromir); + + assertTrue(scn.FreepsActionAvailable(site3)); + scn.FreepsUseCardAction(site3); + scn.FreepsChooseCard(boromir); + assertEquals(6, scn.GetStrength(merry)); + scn.FreepsUseCardAction(boromir); + + assertTrue(scn.FreepsActionAvailable(site3)); + scn.FreepsUseCardAction(site3); + scn.FreepsChooseCard(boromir); + assertEquals(7, scn.GetStrength(merry)); + scn.FreepsUseCardAction(boromir); + + assertTrue(scn.FreepsActionAvailable(site3)); + scn.FreepsUseCardAction(site3); + scn.FreepsChooseCard(boromir); + assertEquals(8, scn.GetStrength(merry)); + scn.FreepsUseCardAction(boromir); + + assertTrue(scn.FreepsActionAvailable(site3)); + scn.FreepsUseCardAction(site3); + scn.FreepsChooseCard(boromir); + assertEquals(9, scn.GetStrength(merry)); + scn.FreepsUseCardAction(boromir); + + assertFalse(scn.FreepsActionAvailable(site3)); + } }