[mage-tests] Added synchronization between steps. Updated bdd classes for step state handling.

This commit is contained in:
magenoxx 2010-12-20 15:01:41 +03:00
parent 49eac2c737
commit 2e27a676ed
17 changed files with 96 additions and 50 deletions

View file

@ -56,6 +56,7 @@ import mage.server.game.ReplayManager;
import mage.server.game.TableManager;
import mage.server.util.ThreadExecutor;
import mage.util.Logging;
import mage.view.CardView;
import mage.view.ChatMessage.MessageColor;
import mage.view.GameView;
import mage.view.TableView;
@ -617,21 +618,12 @@ 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 boolean cheat(final UUID gameId, final UUID sessionId, final UUID playerId, final String cardName) throws MageException {
if (testMode) {
return GameManager.getInstance().cheat(gameId, sessionId, playerId, cardName);
} else {
return false;
}
}
public void handleException(Exception ex) throws MageException {

View file

@ -235,14 +235,17 @@ public class GameController implements GameCallback {
updateGame();
}
public void cheat(UUID sessionId, UUID playerId, String cardName) {
public boolean 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();
card.moveToZone(Zone.HAND, null, game, false);
return true;
} else {
return false;
}
}

View file

@ -113,8 +113,8 @@ 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);
public boolean cheat(UUID gameId, UUID sessionId, UUID playerId, String cardName) {
return gameControllers.get(gameId).cheat(sessionId, playerId, cardName);
}
void timeout(UUID gameId, UUID sessionId) {