Added proper unit tests for Sent Back

This commit is contained in:
Christian 'ketura' McCarty
2023-06-05 19:01:06 -05:00
parent aef4efb3e5
commit bb35690f18
2 changed files with 94 additions and 12 deletions

View File

@@ -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
}
{

View File

@@ -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));
}
}