From 5826d93be4149d0072db6516b921378470bd8039 Mon Sep 17 00:00:00 2001 From: Benjamin Feyer Date: Fri, 13 Dec 2024 05:47:30 +0100 Subject: [PATCH] added test case T003 --- .../src/test/java/pp/mdga/game/GameTest.java | 96 ++++++++++++++++++- 1 file changed, 93 insertions(+), 3 deletions(-) diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java index f832e1ac..b8a2dcf1 100644 --- a/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java +++ b/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java @@ -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 + *

+ * 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