Adding archery and ambush tests.

This commit is contained in:
marcins78@gmail.com
2011-12-02 12:16:19 +00:00
parent a5e2c6dd5c
commit f2ecf5d79e
2 changed files with 112 additions and 1 deletions

View File

@@ -0,0 +1,65 @@
package com.gempukku.lotro.at;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
import com.gempukku.lotro.logic.decisions.AwaitingDecisionType;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import static junit.framework.Assert.*;
public class AmbushAtTest extends AbstractAtTest {
@Test
public void cantPlayIfNotEnoughAndCantExertAnything() throws DecisionResultInvalidException {
Map<String, Collection<String>> extraCards = new HashMap<String, Collection<String>>();
initializeSimplestGame(extraCards);
PhysicalCardImpl gimli = new PhysicalCardImpl(100, "5_7", P1, _library.getLotroCardBlueprint("5_7"));
PhysicalCardImpl desertLegion = new PhysicalCardImpl(101, "4_218", P2, _library.getLotroCardBlueprint("4_218"));
skipMulligans();
// Fellowship phase
_game.getGameState().addCardToZone(_game, gimli, Zone.FREE_CHARACTERS);
playerDecided(P1, "");
// Shadow phase
_game.getGameState().addCardToZone(_game, desertLegion, Zone.SHADOW_CHARACTERS);
playerDecided(P2, "");
// End maneuver phase
playerDecided(P1, "");
playerDecided(P2, "");
// End archery phase
playerDecided(P1, "");
playerDecided(P2, "");
// End assignment phase
playerDecided(P1, "");
playerDecided(P2, "");
// Assign
playerDecided(P1, gimli.getCardId() + " " + desertLegion.getCardId());
// FP player gets no Ambush trigger
assertNull(_userFeedback.getAwaitingDecision(P1));
// Shadow player gets an Ambush trigger
AwaitingDecision ambushTriggerDecision = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_ACTION_CHOICE, ambushTriggerDecision.getDecisionType());
validateContents(new String[]{"" + desertLegion.getCardId()}, (String[]) ambushTriggerDecision.getDecisionParameters().get("cardId"));
assertTrue(((String[]) ambushTriggerDecision.getDecisionParameters().get("actionText"))[0].startsWith("Ambush "));
assertEquals(3, _game.getGameState().getTwilightPool());
playerDecided(P2, getCardActionId(ambushTriggerDecision, "Ambush "));
assertEquals(4, _game.getGameState().getTwilightPool());
}
}

View File

@@ -6,13 +6,14 @@ import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
import com.gempukku.lotro.logic.decisions.AwaitingDecisionType;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import static junit.framework.Assert.assertEquals;
public class ArcheryAtTest extends AbstractAtTest {
@Test
public void archeryWorksBothWays() throws DecisionResultInvalidException {
@@ -54,4 +55,49 @@ public class ArcheryAtTest extends AbstractAtTest {
assertEquals(1, _game.getGameState().getWounds(archerMinion));
assertEquals(Phase.ASSIGNMENT, _game.getGameState().getCurrentPhase());
}
@Test
public void archeryBonusesDontLeakToOtherSide() throws DecisionResultInvalidException {
Map<String, Collection<String>> extraCards = new HashMap<String, Collection<String>>();
initializeSimplestGame(extraCards);
PhysicalCardImpl legolas = new PhysicalCardImpl(100, "1_51", P1, _library.getLotroCardBlueprint("1_51"));
PhysicalCardImpl archerMinion = new PhysicalCardImpl(101, "4_138", P2, _library.getLotroCardBlueprint("4_138"));
PhysicalCardImpl doubleShot = new PhysicalCardImpl(102, "1_38", P1, _library.getLotroCardBlueprint("1_38"));
skipMulligans();
_game.getGameState().addCardToZone(_game, legolas, Zone.FREE_CHARACTERS);
_game.getGameState().addCardToZone(_game, doubleShot, Zone.HAND);
// End fellowship phase
assertEquals(Phase.FELLOWSHIP, _game.getGameState().getCurrentPhase());
playerDecided(P1, "");
_game.getGameState().addCardToZone(_game, archerMinion, Zone.SHADOW_CHARACTERS);
// End shadow phase
assertEquals(Phase.SHADOW, _game.getGameState().getCurrentPhase());
playerDecided(P2, "");
// End maneuver phase
playerDecided(P1, "");
playerDecided(P2, "");
// Play Double Shot
playerDecided(P1, "0");
// End archery phase
playerDecided(P2, "");
playerDecided(P1, "");
AwaitingDecision archeryWoundDecision = _userFeedback.getAwaitingDecision(P1);
assertEquals(AwaitingDecisionType.CARD_SELECTION, archeryWoundDecision.getDecisionType());
assertEquals(2, ((String[]) archeryWoundDecision.getDecisionParameters().get("cardId")).length);
playerDecided(P1, String.valueOf(legolas.getCardId()));
assertEquals(1, _game.getGameState().getWounds(legolas));
assertEquals(2, _game.getGameState().getWounds(archerMinion));
assertEquals(Phase.ASSIGNMENT, _game.getGameState().getCurrentPhase());
}
}