Completing FOTR errata unit tests.
This commit is contained in:
@@ -575,6 +575,7 @@
|
||||
site: 6
|
||||
effects: {
|
||||
type: trigger
|
||||
optional: true
|
||||
trigger: {
|
||||
type: winsSkirmish
|
||||
filter: self
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user