Completing FOTR errata unit tests.

This commit is contained in:
Christian 'ketura' McCarty
2023-03-05 02:06:30 -06:00
parent a7a85ee7ba
commit 60436e22f8
12 changed files with 425 additions and 69 deletions

View File

@@ -575,6 +575,7 @@
site: 6
effects: {
type: trigger
optional: true
trigger: {
type: winsSkirmish
filter: self

View File

@@ -1,8 +1,7 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.SitesBlock;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
@@ -72,6 +71,10 @@ public class Card_01_040_ErrataTests
PhysicalCardImpl elrond = scn.GetFreepsCard("elrond");
assertTrue(elrond.getBlueprint().isUnique());
assertEquals(Side.FREE_PEOPLE, elrond.getBlueprint().getSide());
assertEquals(Culture.ELVEN, elrond.getBlueprint().getCulture());
assertEquals(CardType.ALLY, elrond.getBlueprint().getCardType());
assertEquals(Race.ELF, elrond.getBlueprint().getRace());
assertEquals(4, elrond.getBlueprint().getTwilightCost());
assertEquals(8, elrond.getBlueprint().getStrength());
assertEquals(4, elrond.getBlueprint().getVitality());

View File

@@ -1,8 +1,7 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.SitesBlock;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
@@ -62,8 +61,11 @@ public class Card_01_045_ErrataTests
PhysicalCardImpl galadriel = scn.GetFreepsCard("galadriel");
assertTrue(galadriel.getBlueprint().isUnique());
assertEquals(Side.FREE_PEOPLE, galadriel.getBlueprint().getSide());
assertEquals(Culture.ELVEN, galadriel.getBlueprint().getCulture());
assertEquals(CardType.ALLY, galadriel.getBlueprint().getCardType());
assertEquals(Race.ELF, galadriel.getBlueprint().getRace());
assertEquals(3, galadriel.getBlueprint().getTwilightCost());
assertEquals(3, galadriel.getBlueprint().getStrength());
assertEquals(3, galadriel.getBlueprint().getVitality());
assertEquals(6, galadriel.getBlueprint().getAllyHomeSiteNumbers()[0]);

View File

@@ -1,7 +1,7 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
@@ -47,6 +47,9 @@ public class Card_01_108_ErrataTests
PhysicalCardImpl nostranger = scn.GetFreepsCard("nostranger");
assertTrue(nostranger.getBlueprint().isUnique());
assertEquals(Side.FREE_PEOPLE, nostranger.getBlueprint().getSide());
assertEquals(Culture.GONDOR, nostranger.getBlueprint().getCulture());
assertEquals(CardType.CONDITION, nostranger.getBlueprint().getCardType());
assertEquals(0, nostranger.getBlueprint().getTwilightCost());
assertTrue(scn.HasKeyword(nostranger, Keyword.STEALTH));
}

View File

@@ -53,6 +53,8 @@ public class Card_01_138_ErrataTests
assertFalse(snows.getBlueprint().isUnique());
assertEquals(2, snows.getBlueprint().getTwilightCost());
assertEquals(Side.SHADOW, snows.getBlueprint().getSide());
assertEquals(Culture.ISENGARD, snows.getBlueprint().getCulture());
assertEquals(CardType.CONDITION, snows.getBlueprint().getCardType());
assertEquals(Culture.ISENGARD, snows.getBlueprint().getCulture());
assertTrue(scn.HasKeyword(snows, Keyword.SPELL));

View File

@@ -3,6 +3,7 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
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.game.CardNotFoundException;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -48,6 +49,7 @@ public class Card_01_248_ErrataTests
var forces = scn.GetFreepsCard("forces1");
assertEquals(0, forces.getBlueprint().getTwilightCost());
assertEquals(Side.SHADOW, forces.getBlueprint().getSide());
assertEquals(CardType.EVENT, forces.getBlueprint().getCardType());
assertEquals(Culture.SAURON, forces.getBlueprint().getCulture());
}

View File

@@ -0,0 +1,149 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
import java.util.HashMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class Card_01_280_ErrataTests
{
protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
return new GenericCardTestHelper(
new HashMap<>()
{{
put("lt", "51_280");
put("filler1", "1_281");
put("filler2", "1_282");
put("sam", "1_311");
put("aragorn", "1_89");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
GenericCardTestHelper.FOTRRing
);
}
@Test
public void TowerLieutenantStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
/**
* Set: 1
* Title: Tower Lieutenant
* Unique: True
* Side: SHADOW
* Culture: Sauron
* Twilight Cost: 4
* Type: minion
* Subtype: Orc
* Strength: 10
* Vitality: 3
* Site Number: 6
* Game Text: Each time this minion wins a skirmish, you may exhaust a companion (except the Ring-bearer).
* The Free Peoples player may discard 2 cards at random from hand to prevent this.
*/
//Pre-game setup
var scn = GetScenario();
var lt = scn.GetFreepsCard("lt");
assertTrue(lt.getBlueprint().isUnique());
assertEquals(Side.SHADOW, lt.getBlueprint().getSide());
assertEquals(Culture.SAURON, lt.getBlueprint().getCulture());
assertEquals(CardType.MINION, lt.getBlueprint().getCardType());
assertEquals(Race.ORC, lt.getBlueprint().getRace());
assertEquals(4, lt.getBlueprint().getTwilightCost());
assertEquals(10, lt.getBlueprint().getStrength());
assertEquals(3, lt.getBlueprint().getVitality());
assertEquals(6, lt.getBlueprint().getSiteNumber());
}
@Test
public void TowerLieutenantWinningASkirmishExhaustsACompanion() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var lt = scn.GetShadowCard("lt");
scn.ShadowMoveCharToTable(lt);
var aragorn = scn.GetFreepsCard("aragorn");
scn.FreepsMoveCharToTable(aragorn);
scn.FreepsMoveCardToHand("filler1");
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignToMinions(aragorn, lt);
scn.FreepsResolveSkirmish(aragorn);
scn.PassCurrentPhaseActions();
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
assertEquals(1, scn.GetWoundsOn(aragorn));
scn.ShadowAcceptOptionalTrigger();
assertEquals(3, scn.GetWoundsOn(aragorn));
}
@Test
public void TowerLieutenantOffersChoiceOfNonRBCompanion() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var lt = scn.GetShadowCard("lt");
scn.ShadowMoveCharToTable(lt);
var aragorn = scn.GetFreepsCard("aragorn");
var sam = scn.GetFreepsCard("sam");
scn.FreepsMoveCharToTable(aragorn, sam);
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignToMinions(aragorn, lt);
scn.FreepsResolveSkirmish(aragorn);
scn.PassCurrentPhaseActions();
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
scn.ShadowAcceptOptionalTrigger();
assertEquals(2, scn.GetShadowCardChoiceCount());
}
@Test
public void TowerLieutenantExhaustCanBePreventedByDiscarding2RandomCardsFromHand() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var lt = scn.GetShadowCard("lt");
scn.ShadowMoveCharToTable(lt);
var aragorn = scn.GetFreepsCard("aragorn");
scn.FreepsMoveCharToTable(aragorn);
scn.FreepsMoveCardToHand("filler1", "filler2");
scn.StartGame();
scn.SkipToAssignments();
scn.FreepsAssignToMinions(aragorn, lt);
scn.FreepsResolveSkirmish(aragorn);
scn.PassCurrentPhaseActions();
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
scn.ShadowAcceptOptionalTrigger();
assertTrue(scn.FreepsDecisionAvailable("prevent exhausting"));
assertEquals(2, scn.GetFreepsHandCount());
assertEquals(0, scn.GetFreepsDiscardCount());
scn.FreepsChooseYes();
assertEquals(0, scn.GetFreepsHandCount());
assertEquals(2, scn.GetFreepsDiscardCount());
}
}

View File

@@ -3,11 +3,11 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
import java.util.HashMap;
@@ -18,10 +18,16 @@ public class Card_01_282_ErrataTests
protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
return new GenericCardTestHelper(
new HashMap<String, String>()
new HashMap<>()
{{
put("card", "51_282");
// put other cards in here as needed for the test case
put("legacy", "51_282");
put("legacy2", "51_282");
put("orc", "1_280");
put("orc2", "1_271");
put("boromir", "1_97");
put("tale1", "1_24");
put("tale2", "1_24");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -29,9 +35,7 @@ public class Card_01_282_ErrataTests
);
}
// Uncomment both @Test markers below once this is ready to be used
//@Test
@Test
public void TheWeightofaLegacyStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
/**
@@ -50,34 +54,67 @@ public class Card_01_282_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl card = scn.GetFreepsCard("card");
assertFalse(card.getBlueprint().isUnique());
assertEquals(Side.SHADOW, card.getBlueprint().getSide());
assertEquals(Culture.SAURON, card.getBlueprint().getCulture());
assertEquals(CardType.CONDITION, card.getBlueprint().getCardType());
//assertEquals(Race.CREATURE, card.getBlueprint().getRace());
assertTrue(scn.HasKeyword(card, Keyword.SUPPORT_AREA));
assertEquals(0, card.getBlueprint().getTwilightCost());
assertEquals(-1, card.getBlueprint().getStrength());
//assertEquals(, card.getBlueprint().getVitality());
//assertEquals(, card.getBlueprint().getResistance());
//assertEquals(Signet., card.getBlueprint().getSignet());
//assertEquals(, card.getBlueprint().getSiteNumber()); // Change this to getAllyHomeSiteNumbers for allies
var legacy = scn.GetFreepsCard("legacy");
assertFalse(legacy.getBlueprint().isUnique());
assertEquals(Side.SHADOW, legacy.getBlueprint().getSide());
assertEquals(Culture.SAURON, legacy.getBlueprint().getCulture());
assertEquals(CardType.CONDITION, legacy.getBlueprint().getCardType());
assertEquals(0, legacy.getBlueprint().getTwilightCost());
assertEquals(-1, legacy.getBlueprint().getStrength());
}
//@Test
public void TheWeightofaLegacyTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void TheWeightofaLegacyExertsAnOrcToPlay() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
var legacy = scn.GetShadowCard("legacy");
var orc = scn.GetShadowCard("orc");
scn.ShadowMoveCardToHand(legacy, orc);
var boromir = scn.GetFreepsCard("boromir");
scn.FreepsMoveCharToTable(boromir);
scn.StartGame();
scn.FreepsPlayCard(card);
scn.SetTwilight(10);
scn.FreepsPassCurrentPhaseAction();
assertEquals(0, scn.GetTwilight());
assertFalse(scn.ShadowPlayAvailable(legacy));
scn.ShadowPlayCard(orc);
assertEquals(Zone.HAND, legacy.getZone());
assertEquals(0, scn.GetWoundsOn(orc));
assertEquals(7, scn.GetStrength(boromir));
assertTrue(scn.ShadowPlayAvailable(legacy));
scn.ShadowPlayCard(legacy);
assertEquals(Zone.ATTACHED, legacy.getZone());
assertEquals(boromir, legacy.getAttachedTo());
assertEquals(1, scn.GetWoundsOn(orc));
assertEquals(6, scn.GetStrength(boromir));
}
@Test
public void TheWeightofaLegacyLimit1PerBearer() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
var legacy = scn.GetShadowCard("legacy");
var boromir = scn.GetFreepsCard("boromir");
var tale1 = scn.GetFreepsCard("tale1");
var tale2 = scn.GetFreepsCard("tale2");
scn.FreepsMoveCardToHand(tale1, tale2);
scn.FreepsMoveCharToTable(boromir);
scn.AttachCardsTo(boromir, legacy);
scn.StartGame();
assertEquals(6, scn.GetStrength(boromir));
scn.FreepsPlayCard(tale1);
assertEquals(6, scn.GetStrength(boromir));
scn.FreepsPlayCard(tale2);
assertEquals(4, scn.GetStrength(boromir));
}
}

View File

@@ -1,17 +1,15 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Signet;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.HashMap;
import static org.junit.Assert.*;
public class Card_01_311_ErrataTests
{
protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
@@ -46,15 +44,17 @@ public class Card_01_311_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
var sam = scn.GetFreepsCard("sam");
assertTrue(sam.getBlueprint().isUnique());
assertEquals(Side.FREE_PEOPLE, sam.getBlueprint().getSide());
assertEquals(Culture.SHIRE, sam.getBlueprint().getCulture());
assertEquals(CardType.COMPANION, sam.getBlueprint().getCardType());
assertEquals(Race.HOBBIT, sam.getBlueprint().getRace());
assertEquals(2, sam.getBlueprint().getTwilightCost());
assertEquals(3, sam.getBlueprint().getStrength());
assertEquals(4, sam.getBlueprint().getVitality());
assertEquals(Signet.ARAGORN, sam.getBlueprint().getSignet());
}
@Test
@@ -62,8 +62,8 @@ public class Card_01_311_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl frodo = scn.GetRingBearer();
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
var frodo = scn.GetRingBearer();
var sam = scn.GetFreepsCard("sam");
scn.FreepsMoveCharToTable(sam);
scn.StartGame();
@@ -88,9 +88,9 @@ public class Card_01_311_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl frodo = scn.GetRingBearer();
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
PhysicalCardImpl orc = scn.GetShadowCard("orc");
var frodo = scn.GetRingBearer();
var sam = scn.GetFreepsCard("sam");
var orc = scn.GetShadowCard("orc");
scn.FreepsMoveCharToTable(sam);
scn.StartGame();
@@ -101,5 +101,7 @@ public class Card_01_311_ErrataTests
scn.PassCurrentPhaseActions();
assertTrue(scn.FreepsActionAvailable("Optional Trigger"));
scn.FreepsAcceptOptionalTrigger();
assertSame(scn.GetRingBearer(), sam);
}
}

View File

@@ -1,10 +1,8 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Assert;
import org.junit.Test;
@@ -52,9 +50,13 @@ public class Card_01_313_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl sting = scn.GetFreepsCard("sting");
var sting = scn.GetFreepsCard("sting");
assertTrue(sting.getBlueprint().isUnique());
assertEquals(Side.FREE_PEOPLE, sting.getBlueprint().getSide());
assertEquals(Culture.SHIRE, sting.getBlueprint().getCulture());
assertEquals(CardType.POSSESSION, sting.getBlueprint().getCardType());
assertTrue(sting.getBlueprint().getPossessionClasses().contains(PossessionClass.HAND_WEAPON));
assertEquals(1, sting.getBlueprint().getTwilightCost());
assertEquals(2, sting.getBlueprint().getStrength());
}
@@ -65,9 +67,9 @@ public class Card_01_313_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl frodo = scn.GetRingBearer();
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
PhysicalCardImpl sting = scn.GetFreepsCard("sting");
var frodo = scn.GetRingBearer();
var sam = scn.GetFreepsCard("sam");
var sting = scn.GetFreepsCard("sting");
scn.FreepsMoveCharToTable(sam);
scn.FreepsMoveCardToHand(sting);
@@ -86,8 +88,8 @@ public class Card_01_313_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl frodo = scn.GetRingBearer();
PhysicalCardImpl sting = scn.GetFreepsCard("sting");
var frodo = scn.GetRingBearer();
var sting = scn.GetFreepsCard("sting");
scn.AttachCardsTo(frodo, sting);
@@ -104,13 +106,13 @@ public class Card_01_313_ErrataTests
public void StingAbilityExertsFrodoAndRevealsFourCards() throws DecisionResultInvalidException, CardNotFoundException {
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl frodo = scn.GetRingBearer();
PhysicalCardImpl sting = scn.GetFreepsCard("sting");
var frodo = scn.GetRingBearer();
var sting = scn.GetFreepsCard("sting");
PhysicalCardImpl orc1 = scn.GetShadowCard("orc1");
PhysicalCardImpl orc2 = scn.GetShadowCard("orc2");
PhysicalCardImpl orc3 = scn.GetShadowCard("orc3");
PhysicalCardImpl scimitar1 = scn.GetShadowCard("scimitar1");
var orc1 = scn.GetShadowCard("orc1");
var orc2 = scn.GetShadowCard("orc2");
var orc3 = scn.GetShadowCard("orc3");
var scimitar1 = scn.GetShadowCard("scimitar1");
scn.AttachCardsTo(frodo, sting);
@@ -129,12 +131,12 @@ public class Card_01_313_ErrataTests
public void StingAbilityRemovesTwilight() throws DecisionResultInvalidException, CardNotFoundException {
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl frodo = scn.GetRingBearer();
PhysicalCardImpl sting = scn.GetFreepsCard("sting");
PhysicalCardImpl sam = scn.GetFreepsCard("sam");
PhysicalCardImpl merry = scn.GetFreepsCard("merry");
var frodo = scn.GetRingBearer();
var sting = scn.GetFreepsCard("sting");
var sam = scn.GetFreepsCard("sam");
var merry = scn.GetFreepsCard("merry");
PhysicalCardImpl orc1 = scn.GetShadowCard("orc1");
var orc1 = scn.GetShadowCard("orc1");
scn.FreepsMoveCharToTable(sam, merry);
scn.AttachCardsTo(frodo, sting);

View File

@@ -1,7 +1,7 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
@@ -44,12 +44,16 @@ public class Card_01_316_ErrataTests
//Pre-game setup
GenericCardTestHelper scn = GetScenario();
PhysicalCardImpl talent = scn.GetFreepsCard("talent");
var talent = scn.GetFreepsCard("talent");
assertFalse(talent.getBlueprint().isUnique());
assertEquals(Side.FREE_PEOPLE, talent.getBlueprint().getSide());
assertEquals(Culture.SHIRE, talent.getBlueprint().getCulture());
assertEquals(CardType.CONDITION, talent.getBlueprint().getCardType());
assertEquals(0, talent.getBlueprint().getTwilightCost());
assertTrue(scn.HasKeyword(talent, Keyword.STEALTH));
assertFalse(scn.HasKeyword(talent, Keyword.SUPPORT_AREA));
}
@Test

View File

@@ -0,0 +1,149 @@
package com.gempukku.lotro.cards.unofficial.pc.errata.set01;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.SitesBlock;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
import java.util.HashMap;
import static org.junit.Assert.*;
public class Card_01_333_ErrataTests
{
protected GenericCardTestHelper GetScenario() throws CardNotFoundException, DecisionResultInvalidException {
return new GenericCardTestHelper(
new HashMap<>()
{{
put("moors", "51_333");
put("goblin1", "1_174");
put("goblin2", "1_174");
put("goblin3", "1_174");
}},
new HashMap<>() {{
put("site1", "1_319");
put("moors", "51_333");
put("site3", "1_337");
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.FOTRFrodo,
GenericCardTestHelper.FOTRRing
);
}
@Test
public void MidgewaterMoorsStatsAndKeywordsAreCorrect() throws DecisionResultInvalidException, CardNotFoundException {
/**
* Set: 1
* Title: Midgewater Moors
* Unique: False
* Side:
* Culture:
* Twilight Cost: 1
* Type: site
* Subtype: Standard
* Site Number: 2
* Game Text: <b>Plains.</b> Each time a minion is played, the Free Peoples player must exert a companion or discard a card from hand.
*/
//Pre-game setup
var scn = GetScenario();
var moors = scn.GetFreepsCard("moors");
assertFalse(moors.getBlueprint().isUnique());
assertEquals(CardType.SITE, moors.getBlueprint().getCardType());
assertTrue(scn.HasKeyword(moors, Keyword.PLAINS));
assertEquals(1, moors.getBlueprint().getTwilightCost());
assertEquals(2, moors.getBlueprint().getSiteNumber());
assertEquals(SitesBlock.FELLOWSHIP, moors.getBlueprint().getSiteBlock());
}
@Test
public void MidgewaterMoorsPlayingMinionsWithNoCardsInHandExerts() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var frodo = scn.GetRingBearer();
scn.ShadowMoveCardToHand("goblin1", "goblin2", "goblin3");
scn.StartGame();
scn.SetTwilight(10);
scn.FreepsPassCurrentPhaseAction();
assertEquals("Midgewater Moors", scn.GetCurrentSite().getBlueprint().getTitle());
assertEquals(0, scn.GetWoundsOn(frodo));
scn.ShadowPlayCard("goblin1");
assertEquals(1, scn.GetWoundsOn(frodo));
scn.ShadowPlayCard("goblin2");
assertEquals(2, scn.GetWoundsOn(frodo));
scn.ShadowPlayCard("goblin3");
assertEquals(3, scn.GetWoundsOn(frodo));
}
@Test
public void MidgewaterMoorsPlayingMinionsWithNoVitalityDiscardsACardFromHand() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var frodo = scn.GetRingBearer();
scn.ShadowMoveCardToHand("goblin1", "goblin2", "goblin3");
scn.FreepsMoveCardToHand("goblin1", "goblin2", "goblin3");
scn.StartGame();
scn.SetTwilight(10);
scn.AddWoundsToChar(frodo, 3);
scn.FreepsPassCurrentPhaseAction();
assertEquals("Midgewater Moors", scn.GetCurrentSite().getBlueprint().getTitle());
assertEquals(3, scn.GetFreepsHandCount());
scn.ShadowPlayCard("goblin1");
scn.FreepsChooseCard("goblin1");
assertEquals(2, scn.GetFreepsHandCount());
scn.ShadowPlayCard("goblin2");
scn.FreepsChooseCard("goblin2");
assertEquals(1, scn.GetFreepsHandCount());
scn.ShadowPlayCard("goblin3");
assertEquals(0, scn.GetFreepsHandCount());
}
@Test
public void MidgewaterMoorsFreepsChoosesExertionOrDiscard() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var frodo = scn.GetRingBearer();
scn.ShadowMoveCardToHand("goblin1", "goblin2", "goblin3");
scn.FreepsMoveCardToHand("goblin1", "goblin2", "goblin3");
scn.StartGame();
scn.SetTwilight(10);
scn.FreepsPassCurrentPhaseAction();
assertEquals("Midgewater Moors", scn.GetCurrentSite().getBlueprint().getTitle());
assertEquals(3, scn.GetFreepsHandCount());
assertEquals(0, scn.GetWoundsOn(frodo));
scn.ShadowPlayCard("goblin1");
assertTrue(scn.FreepsDecisionAvailable("Choose action to perform"));
scn.FreepsChoiceAvailable("Exert a companion");
scn.FreepsChoiceAvailable("Discard a card from hand");
}
}