summaryrefslogtreecommitdiff
path: root/game-engine/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'game-engine/src/test')
-rw-r--r--game-engine/src/test/java/org/luxons/sevenwonders/game/GameTest.java17
-rw-r--r--game-engine/src/test/java/org/luxons/sevenwonders/game/test/TestUtils.java10
2 files changed, 22 insertions, 5 deletions
diff --git a/game-engine/src/test/java/org/luxons/sevenwonders/game/GameTest.java b/game-engine/src/test/java/org/luxons/sevenwonders/game/GameTest.java
index b9b399bb..73315dd2 100644
--- a/game-engine/src/test/java/org/luxons/sevenwonders/game/GameTest.java
+++ b/game-engine/src/test/java/org/luxons/sevenwonders/game/GameTest.java
@@ -1,6 +1,7 @@
package org.luxons.sevenwonders.game;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -15,6 +16,9 @@ import org.luxons.sevenwonders.game.cards.Card;
import org.luxons.sevenwonders.game.data.GameDefinitionLoader;
import org.luxons.sevenwonders.game.moves.Move;
import org.luxons.sevenwonders.game.moves.MoveType;
+import org.luxons.sevenwonders.game.resources.BestPriceCalculator;
+import org.luxons.sevenwonders.game.resources.BoughtResources;
+import org.luxons.sevenwonders.game.resources.Resources;
import org.luxons.sevenwonders.game.test.TestUtils;
import static org.junit.Assert.assertEquals;
@@ -90,14 +94,23 @@ public class GameTest {
private static PlayerMove createPlayCardMove(PlayerTurnInfo turnInfo) {
for (HandCard handCard : turnInfo.getHand()) {
- if (handCard.isFree()) {
- return TestUtils.createPlayerMove(handCard.getCard().getName(), MoveType.PLAY);
+ if (handCard.isPlayable()) {
+ List<BoughtResources> resourcesToBuy = findResourcesToBuyFor(handCard, turnInfo);
+ return TestUtils.createPlayerMove(handCard.getCard().getName(), MoveType.PLAY, resourcesToBuy);
}
}
HandCard firstCardInHand = turnInfo.getHand().get(0);
return TestUtils.createPlayerMove(firstCardInHand.getCard().getName(), MoveType.DISCARD);
}
+ private static List<BoughtResources> findResourcesToBuyFor(HandCard handCard, PlayerTurnInfo turnInfo) {
+ if (handCard.isFree()) {
+ return Collections.emptyList();
+ }
+ Resources requiredResources = handCard.getCard().getRequirements().getResources();
+ return BestPriceCalculator.bestSolution(requiredResources, turnInfo.getTable(), turnInfo.getPlayerIndex());
+ }
+
private static PlayerMove createPickGuildMove(PlayerTurnInfo turnInfo) {
List<Card> neighbourGuilds = turnInfo.getNeighbourGuildCards();
assertNotNull(neighbourGuilds);
diff --git a/game-engine/src/test/java/org/luxons/sevenwonders/game/test/TestUtils.java b/game-engine/src/test/java/org/luxons/sevenwonders/game/test/TestUtils.java
index 34b2e74f..5adaa098 100644
--- a/game-engine/src/test/java/org/luxons/sevenwonders/game/test/TestUtils.java
+++ b/game-engine/src/test/java/org/luxons/sevenwonders/game/test/TestUtils.java
@@ -220,15 +220,19 @@ public class TestUtils {
}
public static Move createMove(int playerIndex, Card card, MoveType type, BoughtResources... boughtResources) {
- PlayerMove playerMove = createPlayerMove(card.getName(), type, boughtResources);
+ PlayerMove playerMove = createPlayerMove(card.getName(), type, Arrays.asList(boughtResources));
return type.resolve(playerIndex, card, playerMove);
}
- public static PlayerMove createPlayerMove(String cardName, MoveType type, BoughtResources... boughtResources) {
+ public static PlayerMove createPlayerMove(String cardName, MoveType type) {
+ return createPlayerMove(cardName, type, Collections.emptyList());
+ }
+
+ public static PlayerMove createPlayerMove(String cardName, MoveType type, List<BoughtResources> boughtResources) {
PlayerMove playerMove = new PlayerMove();
playerMove.setCardName(cardName);
playerMove.setType(type);
- playerMove.setBoughtResources(Arrays.asList(boughtResources));
+ playerMove.setBoughtResources(boughtResources);
return playerMove;
}
}
bgstack15