added test case T003

This commit is contained in:
Benjamin Feyer
2024-12-13 05:47:30 +01:00
parent 9c3b949e5a
commit 5826d93be4

View File

@@ -13,7 +13,6 @@
import pp.mdga.message.client.RequestMoveMessage;
import pp.mdga.message.client.SelectTSKMessage;
import pp.mdga.message.client.StartGameMessage;
import pp.mdga.message.server.PlayCardMessage;
import pp.mdga.message.server.ServerMessage;
import pp.mdga.server.ServerGameLogic;
import pp.mdga.server.ServerSender;
@@ -173,10 +172,101 @@ public void testCreatePowerCardDeck() {
assertEquals(16, cards.stream().filter((powerCard -> powerCard instanceof TurboCard)).toArray().length);
}
// UC-Game-02
/**
* this test-method tests the case, if a player finishes
* <p>
* T003
*/
@Test
public void testGameFinishes() {
// TODO: Implement test logic for game finishes
//tests if both player have no color and are not ready
assertFalse(playerClient.isReady());
assertFalse(playerHost.isReady());
assertEquals(playerClient.getColor(), Color.NONE);
assertEquals(playerHost.getColor(), Color.NONE);
//send the selectTSK-message
logic.received(new SelectTSKMessage(Color.CYBER), IDClient);
logic.received(new SelectTSKMessage(Color.ARMY), IDHost);
//sends and tests the readyMessage for the client
logic.received(new LobbyReadyMessage(), IDClient);
logic.received(new LobbyReadyMessage(), IDHost);
assertTrue(playerClient.isReady());
assertTrue(playerHost.isReady());
//tests if the game has started after the gameStartMessage
logic.received(new StartGameMessage(), IDHost);
assertEquals(logic.getCurrentState(), logic.getGameState());
//roll the order
game.setDie(new Die(4));
logic.received(new RequestDieMessage(), IDHost);
game.setDie(new Die(3));
logic.received(new RequestDieMessage(), IDClient);
logic.received(new AnimationEndMessage(), IDClient);
logic.received(new AnimationEndMessage(), IDHost);
//tests that the server is in the animation-state
assertEquals(logic.getCurrentState(), logic.getGameState());
assertEquals(logic.getGameState().getCurrentState(), logic.getGameState().getAnimationState());
logic.received(new AnimationEndMessage(), IDHost);
logic.received(new AnimationEndMessage(), IDClient);
//set all pieces except one in the home, the other direct in front of the home
Piece piece1 = game.getBoard().getInfield()[playerHost.getStartNodeIndex()].getOccupant();
Piece piece2 = playerHost.getWaitingArea()[1];
Piece piece3 = playerHost.getWaitingArea()[2];
Piece piece4 = playerHost.getWaitingArea()[3];
piece1.setState(PieceState.HOMEFINISHED);
piece2.setState(PieceState.HOMEFINISHED);
piece3.setState(PieceState.HOMEFINISHED);
piece4.setState(PieceState.ACTIVE);
playerHost.removeWaitingPiece(piece1);
playerHost.removeWaitingPiece(piece2);
playerHost.removeWaitingPiece(piece3);
playerHost.removeWaitingPiece(piece4);
playerHost.setPieceInHome(3,piece1);
playerHost.setPieceInHome(2,piece2);
playerHost.setPieceInHome(1,piece3);
game.getBoard().getInfield()[playerHost.getStartNodeIndex()-1].setOccupant(piece4);
logic.received(new NoPowerCardMessage(), IDHost);
//tests if the server is in first-roll
assertEquals(logic.getCurrentState(), logic.getGameState());
assertEquals(logic.getGameState().getCurrentState(), logic.getGameState().getTurnState());
TurnState turn = logic.getGameState().getTurnState();
assertEquals(turn.getCurrentState(), turn.getRollDiceState());
RollDiceState rollDiceState = turn.getRollDiceState();
assertEquals(rollDiceState.getCurrentState(), rollDiceState.getFirstRollState());
game.setDie(new Die(1));
logic.received(new RequestDieMessage(), IDHost);
logic.received(new AnimationEndMessage(), IDHost);
//tests if the server is in choose-piece-state
assertEquals(logic.getCurrentState(), logic.getGameState());
assertEquals(logic.getGameState().getCurrentState(), logic.getGameState().getTurnState());
assertEquals(turn.getCurrentState(), turn.getChoosePieceState());
assertEquals(turn.getChoosePieceState().getSelectPieceState(), turn.getChoosePieceState().getCurrentState());
logic.received(new RequestMoveMessage(piece4),IDHost);
//tests if the server is in choose-piece-state
assertEquals(logic.getCurrentState(), logic.getGameState());
assertEquals(logic.getGameState().getCurrentState(), logic.getGameState().getTurnState());
assertEquals(turn.getCurrentState(), turn.getMovePieceState());
logic.received(new AnimationEndMessage(),IDHost);
logic.received(new AnimationEndMessage(),IDClient);
assertTrue(playerHost.isFinished());
//tests if the server is in Ceremony
assertEquals(logic.getCurrentState(), logic.getCeremonyState());
}
// UC-Game-03