Added Mage.Tests project. Update server for test operations. Implemented bdd classes.

This commit is contained in:
magenoxx 2010-12-20 01:03:12 +03:00
parent ddf1866d6e
commit 1b6722f9b2
20 changed files with 546 additions and 2 deletions

View file

@ -57,6 +57,7 @@ import mage.server.game.TableManager;
import mage.server.util.ThreadExecutor;
import mage.util.Logging;
import mage.view.ChatMessage.MessageColor;
import mage.view.GameView;
import mage.view.TableView;
/**
@ -615,9 +616,31 @@ public class ServerImpl extends RemoteServer implements Server {
}
}
@Override
public void cheat(final UUID gameId, final UUID sessionId, final UUID playerId, final String cardName) throws MageException {
try {
rmiExecutor.execute(
new Runnable() {
@Override
public void run() {
if (testMode)
GameManager.getInstance().cheat(gameId, sessionId, playerId, cardName);
}
}
);
}
catch (Exception ex) {
handleException(ex);
}
}
public void handleException(Exception ex) throws MageException {
logger.log(Level.SEVERE, "", ex);
throw new MageException("Server error");
}
public GameView getGameView(final UUID gameId, final UUID sessionId, final UUID playerId) {
return GameManager.getInstance().getGameView(gameId, sessionId, playerId);
}
}

View file

@ -235,6 +235,17 @@ public class GameController implements GameCallback {
updateGame();
}
public void cheat(UUID sessionId, UUID playerId, String cardName) {
String clazz = Sets.findCard(cardName);
if (clazz != null) {
Card card = CardImpl.createCard(clazz);
Set<Card> cards = new HashSet<Card>();
cards.add(card);
game.loadCards(cards, playerId);
updateGame();
}
}
public void kill(UUID sessionId) {
if (sessionPlayerMap.containsKey(sessionId)) {
gameSessions.get(sessionPlayerMap.get(sessionId)).setKilled();
@ -384,7 +395,7 @@ public class GameController implements GameCallback {
return new GameView(game.getState(), game);
}
private GameView getGameView(UUID playerId) {
public GameView getGameView(UUID playerId) {
GameView gameView = new GameView(game.getState(), game);
gameView.setHand(new CardsView(game.getPlayer(playerId).getHand().getCards(game)));
return gameView;

View file

@ -32,6 +32,7 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import mage.cards.decks.DeckCardLists;
import mage.game.Game;
import mage.view.GameView;
/**
*
@ -112,6 +113,10 @@ public class GameManager {
gameControllers.get(gameId).cheat(sessionId, playerId, deckList);
}
public void cheat(UUID gameId, UUID sessionId, UUID playerId, String cardName) {
gameControllers.get(gameId).cheat(sessionId, playerId, cardName);
}
void timeout(UUID gameId, UUID sessionId) {
gameControllers.get(gameId).timeout(sessionId);
}
@ -120,4 +125,7 @@ public class GameManager {
gameControllers.remove(gameId);
}
public GameView getGameView(UUID gameId, UUID sessionId, UUID playerId) {
return gameControllers.get(gameId).getGameView(playerId);
}
}