Helpless errata, Pale Blade, Band of Wild Men unit tests
This commit is contained in:
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.official.set01;
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
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.Test;
|
||||
|
||||
@@ -18,8 +17,14 @@ public class Card_01_221_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "1_221");
|
||||
// put other cards in here as needed for the test case
|
||||
put("paleblade", "1_221");
|
||||
put("twk", "1_237");
|
||||
|
||||
put("gimli", "1_13");
|
||||
put("condition1", "1_16");
|
||||
put("condition2", "1_21");
|
||||
put("condition3", "2_1");
|
||||
put("condition4", "2_9");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -45,7 +50,7 @@ public class Card_01_221_Tests
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsCard("paleblade");
|
||||
|
||||
assertEquals("The Pale Blade", card.getBlueprint().getTitle());
|
||||
assertNull(card.getBlueprint().getSubtitle());
|
||||
@@ -58,18 +63,56 @@ public class Card_01_221_Tests
|
||||
assertEquals(3, card.getBlueprint().getStrength());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void ThePaleBladeTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void ThePaleBladeCanBeTriggeredMultipleTimesFromSameVictory() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var twk = scn.GetShadowCard("twk");
|
||||
var paleblade = scn.GetShadowCard("paleblade");
|
||||
scn.ShadowMoveCharToTable(twk);
|
||||
scn.AttachCardsTo(twk, paleblade);
|
||||
|
||||
var gimli = scn.GetFreepsCard("gimli");
|
||||
var condition1 = scn.GetFreepsCard("condition1");
|
||||
var condition2 = scn.GetFreepsCard("condition2");
|
||||
var condition3 = scn.GetFreepsCard("condition3");
|
||||
var condition4 = scn.GetFreepsCard("condition4");
|
||||
scn.FreepsMoveCharToTable(gimli);
|
||||
scn.FreepsMoveCardToSupportArea(condition1, condition2, condition3, condition4);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsAssignToMinions(gimli, twk);
|
||||
scn.FreepsResolveSkirmish(gimli);
|
||||
assertEquals(Zone.SUPPORT, condition1.getZone());
|
||||
assertEquals(Zone.SUPPORT, condition2.getZone());
|
||||
assertEquals(Zone.SUPPORT, condition3.getZone());
|
||||
assertEquals(Zone.SUPPORT, condition4.getZone());
|
||||
assertEquals(0, scn.GetWoundsOn(twk));
|
||||
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
assertEquals(1, scn.GetWoundsOn(twk));
|
||||
scn.ShadowChooseCard(condition1);
|
||||
assertEquals(Zone.DISCARD, condition1.getZone());
|
||||
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
assertEquals(2, scn.GetWoundsOn(twk));
|
||||
scn.ShadowChooseCard(condition2);
|
||||
assertEquals(Zone.DISCARD, condition2.getZone());
|
||||
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
assertEquals(3, scn.GetWoundsOn(twk));
|
||||
scn.ShadowChooseCard(condition3);
|
||||
assertEquals(Zone.DISCARD, condition3.getZone());
|
||||
|
||||
assertFalse(scn.ShadowHasOptionalTriggerAvailable());
|
||||
assertEquals(Phase.ASSIGNMENT, scn.GetCurrentPhase());
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.official.set04;
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
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.Test;
|
||||
|
||||
@@ -18,8 +17,10 @@ public class Card_04_004_Tests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "4_4");
|
||||
// put other cards in here as needed for the test case
|
||||
put("band", "4_4");
|
||||
|
||||
put("sam", "1_311");
|
||||
put("gimli", "1_13");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -47,7 +48,7 @@ public class Card_04_004_Tests
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsCard("band");
|
||||
|
||||
assertEquals("Band of Wild Men", card.getBlueprint().getTitle());
|
||||
assertNull(card.getBlueprint().getSubtitle());
|
||||
@@ -62,18 +63,75 @@ public class Card_04_004_Tests
|
||||
assertEquals(3, card.getBlueprint().getSiteNumber());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void BandofWildMenTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void BandofWildMenBecomesFierceIfWinningSkirmishNormally() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var band = scn.GetShadowCard("band");
|
||||
scn.ShadowMoveCharToTable(band);
|
||||
|
||||
var gimli = scn.GetFreepsCard("gimli");
|
||||
scn.FreepsMoveCharToTable(gimli);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsAssignToMinions(gimli, band);
|
||||
scn.FreepsResolveSkirmish(gimli);
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
assertEquals(5, scn.GetTwilight());
|
||||
assertFalse(scn.hasKeyword(band, Keyword.FIERCE));
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
assertTrue(scn.hasKeyword(band, Keyword.FIERCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void BandofWildMenBecomesFierceIfWinningSkirmishWithOverwhelm() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var band = scn.GetShadowCard("band");
|
||||
scn.ShadowMoveCharToTable(band);
|
||||
|
||||
var sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
|
||||
scn.StartGame();
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsAssignToMinions(sam, band);
|
||||
scn.FreepsResolveSkirmish(sam);
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
assertFalse(scn.hasKeyword(band, Keyword.FIERCE));
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
assertTrue(scn.hasKeyword(band, Keyword.FIERCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void BandofWildMenBecomesFierceIfWinningSkirmishKillsOpponentWithWound() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var band = scn.GetShadowCard("band");
|
||||
scn.ShadowMoveCharToTable(band);
|
||||
|
||||
var gimli = scn.GetFreepsCard("gimli");
|
||||
scn.FreepsMoveCharToTable(gimli);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.AddWoundsToChar(gimli, 2);
|
||||
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsAssignToMinions(gimli, band);
|
||||
scn.FreepsResolveSkirmish(gimli);
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
assertFalse(scn.hasKeyword(band, Keyword.FIERCE));
|
||||
assertTrue(scn.ShadowHasOptionalTriggerAvailable());
|
||||
scn.ShadowAcceptOptionalTrigger();
|
||||
assertTrue(scn.hasKeyword(band, Keyword.FIERCE));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.errata.set02;
|
||||
import com.gempukku.lotro.cards.GenericCardTestHelper;
|
||||
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.Test;
|
||||
|
||||
@@ -18,8 +17,10 @@ public class Card_02_076_ErrataTests
|
||||
return new GenericCardTestHelper(
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("card", "52_76");
|
||||
// put other cards in here as needed for the test case
|
||||
put("sam", "1_311");
|
||||
put("helpless", "52_76");
|
||||
put("toto", "10_68");
|
||||
put("nelya","1_233");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -45,7 +46,7 @@ public class Card_02_076_ErrataTests
|
||||
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
var card = scn.GetFreepsCard("helpless");
|
||||
|
||||
assertEquals("Helpless", card.getBlueprint().getTitle());
|
||||
assertNull(card.getBlueprint().getSubtitle());
|
||||
@@ -57,18 +58,96 @@ public class Card_02_076_ErrataTests
|
||||
assertEquals(1, card.getBlueprint().getTwilightCost());
|
||||
}
|
||||
|
||||
// Uncomment any @Test markers below once this is ready to be used
|
||||
//@Test
|
||||
public void HelplessTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void HelplessBlocksSpecialAbilities() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var frodo = scn.GetRingBearer();
|
||||
var sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
|
||||
var helpless = scn.GetShadowCard("helpless");
|
||||
var nelya = scn.GetShadowCard("nelya");
|
||||
scn.ShadowAttachCardsTo(sam, helpless);
|
||||
scn.ShadowMoveCharToTable(nelya);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
//The Fellowship burden-removing special ability should be blocked
|
||||
assertFalse(scn.FreepsActionAvailable(sam));
|
||||
|
||||
assertEquals(1, scn.GetTwilight());
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsAssignToMinions(frodo, nelya);
|
||||
scn.FreepsResolveSkirmish(frodo);
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
//The Response ring-bearer special ability should also be blocked
|
||||
assertFalse(scn.FreepsHasOptionalTriggerAvailable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void HelplessDoesNotBlockAbilitiesWhileInSupportArea() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var frodo = scn.GetRingBearer();
|
||||
var sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
|
||||
var helpless = scn.GetShadowCard("helpless");
|
||||
var nelya = scn.GetShadowCard("nelya");
|
||||
scn.ShadowMoveCardToSupportArea(helpless);
|
||||
scn.ShadowMoveCharToTable(nelya);
|
||||
|
||||
scn.StartGame();
|
||||
//The Fellowship burden-removing special ability should NOT be blocked
|
||||
assertTrue(scn.FreepsActionAvailable(sam));
|
||||
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsAssignToMinions(frodo, nelya);
|
||||
scn.FreepsResolveSkirmish(frodo);
|
||||
scn.PassCurrentPhaseActions();
|
||||
|
||||
//The Response ring-bearer special ability should also NOT be blocked
|
||||
assertTrue(scn.FreepsHasOptionalTriggerAvailable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void HelplessManeuverActionTransfersToRingBoundCompanion() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var frodo = scn.GetRingBearer();
|
||||
var sam = scn.GetFreepsCard("sam");
|
||||
scn.FreepsMoveCharToTable(sam);
|
||||
|
||||
var helpless = scn.GetShadowCard("helpless");
|
||||
var toto = scn.GetShadowCard("toto");
|
||||
var nelya = scn.GetShadowCard("nelya");
|
||||
scn.ShadowMoveCardToSupportArea(helpless);
|
||||
scn.ShadowMoveCharToTable(toto, nelya);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
scn.SkipToPhase(Phase.MANEUVER);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
|
||||
assertTrue(scn.ShadowActionAvailable(helpless));
|
||||
assertEquals(0, scn.GetWoundsOn(toto));
|
||||
assertEquals(0, scn.GetWoundsOn(nelya));
|
||||
assertEquals(Zone.SUPPORT, helpless.getZone());
|
||||
|
||||
scn.ShadowUseCardAction(helpless);
|
||||
assertEquals(2, scn.ShadowGetCardChoiceCount());
|
||||
scn.ShadowChooseCard(toto);
|
||||
assertEquals(1, scn.GetWoundsOn(toto));
|
||||
assertEquals(0, scn.GetWoundsOn(nelya));
|
||||
|
||||
//Can go on either Sam or Frodo
|
||||
assertEquals(2, scn.ShadowGetCardChoiceCount());
|
||||
scn.ShadowChooseCard(frodo);
|
||||
assertEquals(Zone.ATTACHED, helpless.getZone());
|
||||
assertEquals(frodo, helpless.getAttachedTo());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user