TGAT errata test cases

This commit is contained in:
Christian 'ketura' McCarty
2025-04-17 08:34:36 -05:00
parent a515d5f4ef
commit 4a68fb2d5a

View File

@@ -1,9 +1,7 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set03;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -19,8 +17,12 @@ public class Card_03_085_ErrataTests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "53_85");
// put other cards in here as needed for the test case
put("tgat", "53_85");
put("twigul", "101_40");
put("lord", "4_219");
put("sam", "1_311");
put("bounder", "1_286");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -42,12 +44,13 @@ public class Card_03_085_ErrataTests
* Subtype:
* Game Text: To play, exert a [ringwraith] minion. Bearer must
* be a companion or ally (except the Ring-bearer). Limit 1 per bearer.
* Each time bearer is exerted by a Free Peoples card, exert bearer unless the Free Peoples player discards a card from hand of bearer's culture.
* Each time bearer is exerted by a Free Peoples card, exert bearer unless the Free Peoples player
* discards a card from hand of bearer's culture.
*/
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("tgat");
assertEquals("Too Great and Terrible", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -58,29 +61,112 @@ public class Card_03_085_ErrataTests
assertEquals(1, card.getBlueprint().getTwilightCost());
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void TooGreatandTerribleTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void TooGreatandTerribleExertsARingwraithMinionToPlayOnCompOrAllyExceptRingBearer() 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 tgat = scn.GetShadowCard("tgat");
var twigul = scn.GetShadowCard("twigul");
var lord = scn.GetShadowCard("lord");
scn.ShadowMoveCardToHand(tgat);
scn.ShadowMoveCharToTable(twigul, lord);
var card = scn.GetShadowCard("card");
scn.ShadowMoveCardToHand(card);
scn.ShadowMoveCharToTable(card);
scn.ShadowMoveCardToSupportArea(card);
scn.ShadowMoveCardToDiscard(card);
scn.ShadowMoveCardsToTopOfDeck(card);
var sam = scn.GetFreepsCard("sam");
var bounder = scn.GetFreepsCard("bounder");
scn.FreepsMoveCharToTable(sam);
scn.FreepsMoveCardToSupportArea(bounder);
scn.StartGame();
scn.FreepsPlayCard(card);
scn.FreepsPassCurrentPhaseAction();
assertEquals(1, scn.GetTwilight());
assertEquals(0, scn.GetWoundsOn(twigul));
assertEquals(0, scn.GetWoundsOn(lord));
assertEquals(Zone.HAND, tgat.getZone());
assertTrue(scn.ShadowPlayAvailable(tgat));
scn.ShadowPlayCard(tgat);
assertEquals(2, scn.ShadowGetCardChoiceCount());
assertTrue(scn.ShadowHasCardChoicesAvailable(sam, bounder));
scn.ShadowChooseCard(bounder);
assertEquals(Zone.ATTACHED, tgat.getZone());
assertEquals(bounder, tgat.getAttachedTo());
assertEquals(1, scn.GetWoundsOn(twigul));
assertEquals(0, scn.GetWoundsOn(lord));
}
@Test
public void TooGreatandTerribleExertsBearerEachTimeTheyExertFromFreepsCard() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var sam = scn.GetFreepsCard("sam");
var bounder = scn.GetFreepsCard("bounder");
scn.FreepsMoveCharToTable(sam);
scn.FreepsMoveCardToHand(bounder);
var tgat = scn.GetShadowCard("tgat");
scn.ShadowAttachCardsTo(sam, tgat);
scn.StartGame();
assertEquals(0, scn.GetWoundsOn(sam));
scn.FreepsUseCardAction(sam);
assertTrue(scn.FreepsDecisionAvailable("Discard a card from hand sharing a culture with"));
scn.FreepsChooseNo();
assertEquals(2, scn.GetWoundsOn(sam));
}
@Test
public void TooGreatandTerribleDoesNotExertBearerIfDoneByShadowCard() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var sam = scn.GetFreepsCard("sam");
var bounder = scn.GetFreepsCard("bounder");
scn.FreepsMoveCharToTable(sam);
scn.FreepsMoveCardToHand(bounder);
var tgat = scn.GetShadowCard("tgat");
var lord = scn.GetShadowCard("lord");
scn.ShadowAttachCardsTo(sam, tgat);
scn.ShadowMoveCharToTable(lord);
scn.StartGame();
scn.SkipToPhase(Phase.ARCHERY);
scn.FreepsPassCurrentPhaseAction();
scn.ShadowUseCardAction(lord);
assertEquals(1, scn.GetWoundsOn(sam));
assertFalse(scn.FreepsDecisionAvailable("Discard a card from hand sharing a culture with"));
}
@Test
public void TooGreatandTerribleLetsFreepsBlockExertionIfCardDiscardedFromHandOfSameCulture() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var sam = scn.GetFreepsCard("sam");
var bounder = scn.GetFreepsCard("bounder");
scn.FreepsMoveCharToTable(sam);
scn.FreepsMoveCardToHand(bounder);
var tgat = scn.GetShadowCard("tgat");
scn.ShadowAttachCardsTo(sam, tgat);
scn.StartGame(false);
assertEquals(0, scn.GetWoundsOn(sam));
assertEquals(Zone.HAND, bounder.getZone());
scn.FreepsUseCardAction(sam);
assertTrue(scn.FreepsDecisionAvailable("Discard a card from hand sharing a culture with"));
scn.FreepsChooseYes();
assertEquals(Zone.DISCARD, bounder.getZone());
assertEquals(1, scn.GetWoundsOn(sam));
}
}