From 5004b3dac0364b5999224cf06709824ea3743498 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 16 Jan 2012 13:26:14 +0000 Subject: [PATCH] Added test for movement. --- .../com/gempukku/lotro/at/TimingAtTest.java | 70 +++++++++++++++++-- 1 file changed, 63 insertions(+), 7 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java index 81815a060..ef6e93ff8 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/TimingAtTest.java @@ -1,20 +1,26 @@ package com.gempukku.lotro.at; +import com.gempukku.lotro.cards.AbstractSite; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Zone; +import com.gempukku.lotro.game.LotroCardBlueprint; +import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCardImpl; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.actions.RequiredTriggerAction; 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.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - +import com.gempukku.lotro.logic.timing.EffectResult; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; +import static org.junit.Assert.fail; +import org.junit.Test; + +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; public class TimingAtTest extends AbstractAtTest { @Test @@ -188,4 +194,54 @@ public class TimingAtTest extends AbstractAtTest { assertEquals(7, _game.getModifiersQuerying().getStrength(_game.getGameState(), gimli)); } + + @Test + public void moveFromAndMoveTo() throws DecisionResultInvalidException { + initializeSimplestGame(); + + skipMulligans(); + + final AtomicInteger moveFrom = new AtomicInteger(0); + final AtomicInteger moveTo = new AtomicInteger(0); + + PhysicalCardImpl moveFromSite = new PhysicalCardImpl(100, "0_1234", P1, + new AbstractSite("Blah", Block.FELLOWSHIP, 1, 0, LotroCardBlueprint.Direction.LEFT) { + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.movesFrom(game, effectResult, self)) { + moveFrom.incrementAndGet(); + } else if (TriggerConditions.movesTo(game, effectResult, self)) { + fail("Should not be called"); + } + return null; + } + }); + moveFromSite.setSiteNumber(1); + PhysicalCardImpl moveToSite = new PhysicalCardImpl(100, "0_1235", P1, + new AbstractSite("Blah", Block.FELLOWSHIP, 2, 0, LotroCardBlueprint.Direction.LEFT) { + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.movesTo(game, effectResult, self)) { + moveTo.incrementAndGet(); + } else if (TriggerConditions.movesFrom(game, effectResult, self)) { + fail("Should not be called"); + } + return null; + } + }); + moveToSite.setSiteNumber(2); + + _game.getGameState().removeCardsFromZone(P1, Collections.singleton(_game.getGameState().getCurrentSite())); + _game.getGameState().addCardToZone(_game, moveFromSite, Zone.ADVENTURE_PATH); + _game.getGameState().addCardToZone(_game, moveToSite, Zone.ADVENTURE_PATH); + + // End fellowship phase + playerDecided(P1, ""); + + // End shadow phase + playerDecided(P2, ""); + + assertEquals(1, moveFrom.get()); + assertEquals(1, moveTo.get()); + } }