Added proper unit tests for Sent Back
This commit is contained in:
@@ -193,7 +193,7 @@
|
||||
{
|
||||
type: chooseActiveCards
|
||||
text: Choose Wizard to put in dead pile
|
||||
filter: choose(wizard,inSkirmish)
|
||||
filter: choose(your,wizard,inSkirmish)
|
||||
memorize: chosenWizard
|
||||
}
|
||||
{
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.gempukku.lotro.cards.unofficial.pc.errata.set09;
|
||||
|
||||
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.*;
|
||||
import com.gempukku.lotro.game.CardNotFoundException;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import org.junit.Test;
|
||||
@@ -21,7 +18,15 @@ public class Card_09_027_ErrataTests
|
||||
new HashMap<>()
|
||||
{{
|
||||
put("sentback", "79_27");
|
||||
// put other cards in here as needed for the test case
|
||||
put("gandalf1", "1_72");
|
||||
put("gandalf2", "7_36");
|
||||
put("radagast1", "9_26");
|
||||
put("radagast2", "9_26");
|
||||
|
||||
put("saruman", "3_69");
|
||||
put("staff", "4_174");
|
||||
put("runner1", "1_178");
|
||||
put("runner2", "1_178");
|
||||
}},
|
||||
GenericCardTestHelper.FellowshipSites,
|
||||
GenericCardTestHelper.FOTRFrodo,
|
||||
@@ -59,17 +64,94 @@ public class Card_09_027_ErrataTests
|
||||
assertEquals(2, sentback.getBlueprint().getTwilightCost());
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void SentBackTest1() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
@Test
|
||||
public void SkirmishAbilityDiscardsAllAssignedMinionsAndKillsWizard() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var card = scn.GetFreepsCard("card");
|
||||
scn.FreepsMoveCardToHand(card);
|
||||
var sentback = scn.GetFreepsCard("sentback");
|
||||
var gandalf = scn.GetFreepsCard("gandalf1");
|
||||
var radagast = scn.GetFreepsCard("radagast1");
|
||||
scn.FreepsMoveCardToSupportArea(sentback);
|
||||
scn.FreepsMoveCharToTable(gandalf, radagast);
|
||||
|
||||
var saruman = scn.GetShadowCard("saruman");
|
||||
var staff = scn.GetShadowCard("staff");
|
||||
var runner1 = scn.GetShadowCard("runner1");
|
||||
var runner2 = scn.GetShadowCard("runner2");
|
||||
scn.ShadowMoveCharToTable(saruman, runner1, runner2);
|
||||
scn.AttachCardsTo(saruman, staff);
|
||||
|
||||
scn.StartGame();
|
||||
scn.FreepsPlayCard(card);
|
||||
|
||||
assertEquals(2, scn.GetTwilight());
|
||||
scn.SkipToPhase(Phase.MANEUVER);
|
||||
scn.FreepsPassCurrentPhaseAction();
|
||||
scn.ShadowUseCardAction(staff); // permit saruman to skirmish
|
||||
|
||||
scn.SkipToAssignments();
|
||||
scn.FreepsDeclineAssignments();
|
||||
scn.ShadowAssignToMinions(radagast, saruman, runner1, runner2);
|
||||
|
||||
scn.FreepsResolveSkirmish(radagast);
|
||||
|
||||
assertTrue(scn.FreepsActionAvailable(sentback));
|
||||
assertEquals(Zone.SHADOW_CHARACTERS, saruman.getZone());
|
||||
assertEquals(Zone.SHADOW_CHARACTERS, runner1.getZone());
|
||||
assertEquals(Zone.SHADOW_CHARACTERS, runner2.getZone());
|
||||
assertEquals(Zone.FREE_CHARACTERS, radagast.getZone());
|
||||
assertEquals(Zone.SUPPORT, sentback.getZone());
|
||||
scn.FreepsUseCardAction(sentback);
|
||||
|
||||
// Radagast should be the only viable choice. Saruman is viable in the original,
|
||||
// but the errata requires you to target "your Wizard" rather than "a Wizard"
|
||||
assertNotEquals(Phase.SKIRMISH, scn.GetCurrentPhase());
|
||||
assertEquals(Zone.DISCARD, saruman.getZone());
|
||||
assertEquals(Zone.DISCARD, runner1.getZone());
|
||||
assertEquals(Zone.DISCARD, runner2.getZone());
|
||||
assertEquals(Zone.DEAD, radagast.getZone());
|
||||
assertEquals(Zone.DISCARD, sentback.getZone());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void FellowshipAbilityCanResurrectDeadWizard() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var sentback = scn.GetFreepsCard("sentback");
|
||||
var grey = scn.GetFreepsCard("gandalf1");
|
||||
var white = scn.GetFreepsCard("gandalf2");
|
||||
scn.FreepsMoveCardToSupportArea(sentback);
|
||||
scn.FreepsMoveCardToDeadPile(grey);
|
||||
scn.FreepsMoveCardToHand(white);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
assertTrue(scn.FreepsActionAvailable(sentback));
|
||||
assertEquals(Zone.DEAD, grey.getZone());
|
||||
assertEquals(Zone.HAND, white.getZone());
|
||||
scn.FreepsUseCardAction(sentback);
|
||||
assertEquals(Zone.DEAD, grey.getZone());
|
||||
assertEquals(Zone.FREE_CHARACTERS, white.getZone());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void SentBackHasNoRegroupAbility() throws DecisionResultInvalidException, CardNotFoundException {
|
||||
//Pre-game setup
|
||||
var scn = GetScenario();
|
||||
|
||||
var sentback = scn.GetFreepsCard("sentback");
|
||||
var grey = scn.GetFreepsCard("gandalf1");
|
||||
var white = scn.GetFreepsCard("gandalf2");
|
||||
scn.FreepsMoveCardToSupportArea(sentback);
|
||||
scn.FreepsMoveCardToDeadPile(grey);
|
||||
scn.FreepsMoveCardToHand(white);
|
||||
|
||||
scn.StartGame();
|
||||
|
||||
assertTrue(scn.FreepsActionAvailable(sentback));
|
||||
|
||||
scn.SkipToPhase(Phase.REGROUP);
|
||||
|
||||
assertFalse(scn.FreepsActionAvailable(sentback));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user