diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java index 98c826fa0..e85c365fa 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/GenericCardTestHelper.java @@ -3,7 +3,6 @@ package com.gempukku.lotro.cards; import com.gempukku.lotro.at.AbstractAtTest; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.PhysicalCard; @@ -94,11 +93,11 @@ public class GenericCardTestHelper extends AbstractAtTest { String id = cardIDs.get(name); PhysicalCardImpl card = CreateCard(P1, id); Cards.get(P1).put(name, card); - FreepsMoveCardToDeck(card); + FreepsMoveCardsToTopOfDeck(card); card = CreateCard(P2, id); Cards.get(P2).put(name, card); - FreepsMoveCardToDeck(card); + FreepsMoveCardsToTopOfDeck(card); } } } @@ -266,15 +265,25 @@ public class GenericCardTestHelper extends AbstractAtTest { - public void FreepsMoveCardToHand(String cardName) { MoveCardToZone(P1, GetFreepsCard(cardName), Zone.HAND); } + public void FreepsMoveCardToHand(String...names) { + for(String name : names) { + FreepsMoveCardToHand(GetFreepsCard(name)); + } + } public void FreepsMoveCardToHand(PhysicalCardImpl...cards) { for(PhysicalCardImpl card : cards) { + RemoveCardZone(P1, card); MoveCardToZone(P1, card, Zone.HAND); } } - public void ShadowMoveCardToHand(String cardName) { MoveCardToZone(P2, GetShadowCard(cardName), Zone.HAND); } + public void ShadowMoveCardToHand(String...names) { + for(String name : names) { + ShadowMoveCardToHand(GetShadowCard(name)); + } + } public void ShadowMoveCardToHand(PhysicalCardImpl...cards) { for(PhysicalCardImpl card : cards) { + RemoveCardZone(P2, card); MoveCardToZone(P2, card, Zone.HAND); } } @@ -286,30 +295,80 @@ public class GenericCardTestHelper extends AbstractAtTest { Arrays.stream(names).forEach(name -> AttachCardsTo(bearer, GetShadowCard(name))); } public void AttachCardsTo(PhysicalCardImpl bearer, PhysicalCardImpl...cards) { - Arrays.stream(cards).forEach(card -> _game.getGameState().attachCard(_game, card, bearer)); + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().attachCard(_game, card, bearer); + }); } public void FreepsStackCardsOn(PhysicalCardImpl on, String...cardNames) { - Arrays.stream(cardNames).forEach(name -> _game.getGameState().stackCard(_game, GetFreepsCard(name), on)); + Arrays.stream(cardNames).forEach(name -> StackCardsOn(on, GetFreepsCard(name))); } public void ShadowStackCardsOn(PhysicalCardImpl on, String...cardNames) { - Arrays.stream(cardNames).forEach(name -> _game.getGameState().stackCard(_game, GetShadowCard(name), on)); + Arrays.stream(cardNames).forEach(name -> StackCardsOn(on, GetShadowCard(name))); } public void StackCardsOn(PhysicalCardImpl on, PhysicalCardImpl...cards) { - Arrays.stream(cards).forEach(card -> _game.getGameState().stackCard(_game, card, on)); + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().stackCard(_game, card, on); + }); } - public void FreepsMoveCardToDeck(String...cardNames) { - Arrays.stream(cardNames).forEach(cardName -> FreepsMoveCardToDeck(GetFreepsCard(cardName))); + public void FreepsMoveCardsToTopOfDeck(String...cardNames) { + Arrays.stream(cardNames).forEach(cardName -> FreepsMoveCardsToTopOfDeck(GetFreepsCard(cardName))); } - public void FreepsMoveCardToDeck(PhysicalCardImpl...cards) { - Arrays.stream(cards).forEach(card -> MoveCardToZone(P1, card, Zone.DECK)); + public void FreepsMoveCardsToTopOfDeck(PhysicalCardImpl...cards) { + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().putCardOnTopOfDeck(card); + }); } - public void ShadowMoveCardToDeck(String...cardNames) { - Arrays.stream(cardNames).forEach(cardName -> ShadowMoveCardToDeck(GetShadowCard(cardName))); + public void ShadowMoveCardsToTopOfDeck(String...cardNames) { + Arrays.stream(cardNames).forEach(cardName -> ShadowMoveCardsToTopOfDeck(GetShadowCard(cardName))); } - public void ShadowMoveCardToDeck(PhysicalCardImpl...cards) { - Arrays.stream(cards).forEach(card -> MoveCardToZone(P1, card, Zone.DECK)); + public void ShadowMoveCardsToTopOfDeck(PhysicalCardImpl...cards) { + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().putCardOnTopOfDeck(card); + }); + } + + public void FreepsMoveCardsToBottomOfDeck(String...cardNames) { + Arrays.stream(cardNames).forEach(cardName -> FreepsMoveCardsToBottomOfDeck(GetFreepsCard(cardName))); + } + public void FreepsMoveCardsToBottomOfDeck(PhysicalCardImpl...cards) { + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().putCardOnTopOfDeck(card); + }); + } + public void ShadowMoveCardsToBottomOfDeck(String...cardNames) { + Arrays.stream(cardNames).forEach(cardName -> ShadowMoveCardsToBottomOfDeck(GetShadowCard(cardName))); + } + public void ShadowMoveCardsToBottomOfDeck(PhysicalCardImpl...cards) { + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().putCardOnTopOfDeck(card); + }); + } + + public void FreepsShuffleCardsInDeck(String...cardNames) { + Arrays.stream(cardNames).forEach(cardName -> FreepsShuffleCardsInDeck(GetFreepsCard(cardName))); + } + public void FreepsShuffleCardsInDeck(PhysicalCardImpl...cards) { + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().putCardOnTopOfDeck(card); + }); + } + public void ShadowShuffleCardsInDeck(String...cardNames) { + Arrays.stream(cardNames).forEach(cardName -> ShadowShuffleCardsInDeck(GetShadowCard(cardName))); + } + public void ShadowShuffleCardsInDeck(PhysicalCardImpl...cards) { + Arrays.stream(cards).forEach(card -> { + RemoveCardZone(card.getOwner(), card); + _game.getGameState().putCardOnTopOfDeck(card); + }); } public void FreepsMoveCharToTable(String...names) { @@ -345,12 +404,15 @@ public class GenericCardTestHelper extends AbstractAtTest { } - - public void MoveCardToZone(String player, PhysicalCardImpl card, Zone zone) { + public void RemoveCardZone(String player, PhysicalCardImpl card) { if(card.getZone() != null) { _game.getGameState().removeCardsFromZone(player, new ArrayList() {{ add(card); }}); } + } + + public void MoveCardToZone(String player, PhysicalCardImpl card, Zone zone) { + RemoveCardZone(player, card); _game.getGameState().addCardToZone(_game, card, zone); } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set02/Card2_013Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set02/Card2_013Tests.java index b0fd6432b..037c8b050 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set02/Card2_013Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/official/set02/Card2_013Tests.java @@ -40,7 +40,6 @@ public class Card2_013Tests PhysicalCardImpl gimli = scn.GetFreepsCard("gimli"); scn.FreepsMoveCharToTable(gimli); scn.FreepsMoveCardToHand(tidings); - scn.FreepsMoveCardToDeck("deckcard1", "deckcard2", "deckcard3"); scn.StartGame(); scn.FreepsSkipCurrentPhaseAction(); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java index 065ed40e9..366e3dd20 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_002Tests.java @@ -76,7 +76,7 @@ public class Card_V1_002Tests scn.FreepsMoveCardToDiscard("axe"); scn.FreepsMoveCardToDiscard("runner"); scn.FreepsMoveCardToDiscard("plunder"); - scn.FreepsMoveCardToDeck(strike); + scn.FreepsMoveCardsToTopOfDeck(strike); scn.StartGame(); @@ -104,7 +104,7 @@ public class Card_V1_002Tests scn.FreepsMoveCardToDiscard("axe"); scn.FreepsMoveCardToDiscard("runner"); scn.FreepsMoveCardToDiscard("plunder"); - scn.FreepsMoveCardToDeck(strike); + scn.FreepsMoveCardsToTopOfDeck(strike); scn.ShadowMoveCharToTable("runner"); diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_011Tests.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_011Tests.java index b523aa375..5518cd13c 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_011Tests.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/cards/unofficial/pc/vset1/vpack1/Card_V1_011Tests.java @@ -254,7 +254,7 @@ public class Card_V1_011Tests PhysicalCardImpl galadriel = scn.GetFreepsCard("galadriel"); scn.FreepsMoveCardToSupportArea(library); - scn.FreepsStackCardsOn(library, "dwarfart", "elfart", "gandalfart", "gondorart", "shireart"); + scn.FreepsMoveCharToTable(gandalf, aragorn, gimli, galadriel); PhysicalCardImpl savage1 = scn.GetShadowCard("savage1"); @@ -266,6 +266,8 @@ public class Card_V1_011Tests scn.ShadowMoveCharToTable(savage1, savage2, savage3, savage4, savage5, savage6); scn.StartGame(); + + scn.FreepsStackCardsOn(library, "dwarfart", "elfart", "gandalfart", "gondorart", "shireart"); scn.AddWoundsToChar(gandalf, 3); scn.AddWoundsToChar(aragorn, 3); @@ -273,6 +275,8 @@ public class Card_V1_011Tests scn.SkipToPhase(Phase.REGROUP); + assertEquals(5, scn.GetStackedCards(library).size()); + assertTrue(scn.FreepsCardActionAvailable(library)); assertEquals(0, scn.GetWoundsOn(galadriel)); scn.FreepsUseCardAction(library);