TGAT errata test cases
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user