From 50ac201277eaccd6722d9b628982c8522e1103cf Mon Sep 17 00:00:00 2001 From: Benjamin Feyer Date: Mon, 2 Dec 2024 22:10:11 +0100 Subject: [PATCH] added two new pieceTests --- .../src/test/java/pp/mdga/game/PieceTest.java | 159 +++++++++++++++++- 1 file changed, 153 insertions(+), 6 deletions(-) diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java index 9a3729be..58b79e52 100644 --- a/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java +++ b/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java @@ -19,6 +19,8 @@ import pp.mdga.server.automaton.game.turn.PowerCardState; import pp.mdga.server.automaton.game.turn.RollDiceState; import pp.mdga.server.automaton.game.turn.choosepiece.SelectPieceState; +import pp.mdga.server.automaton.game.turn.choosepiece.StartPieceState; +import pp.mdga.server.automaton.game.turn.choosepiece.WaitingPieceState; import pp.mdga.server.automaton.game.turn.rolldice.FirstRollState; import java.sql.SQLOutput; @@ -61,9 +63,21 @@ public class PieceTest { private Piece pieceHost2; private Piece pieceHost3; + //declare cyberPlayer here + private String nameCyber; + private Player playerCyber; + private Color cyberColor; + + //declare cyberPieces + private Piece pieceCyber0; + private Piece pieceCyber1; + private Piece pieceCyber2; + private Piece pieceCyber3; + //ID's for player - private int IDHost = 1; - private int IDClient = 2; + private int IDHost; + private int IDClient; + private int IDCyber; //declare states GameState gameState; @@ -74,6 +88,8 @@ public class PieceTest { SelectPieceState selectPieceState; PowerCardState powerCardState; PlayPowerCardState playPowerCardState; + WaitingPieceState waitingPieceState; + StartPieceState startPieceState; //declare dies private Die die1; @@ -109,6 +125,10 @@ public void disconnectClient(int id) { } }, game); + IDHost = 1; + IDClient = 2; + IDCyber = 3; + //declare player-Client here playerClient = new Player(nameClient); @@ -122,8 +142,12 @@ public void disconnectClient(int id) { playerHost.setColor(hostColor); game.addPlayer(IDHost, playerHost); - System.out.println(game.getPlayers().get(IDClient)); - System.out.println(game.getPlayers().get(IDHost)); + //declare playerCyber here + nameCyber = "Cyber"; + playerCyber = new Player(nameCyber); + cyberColor = Color.CYBER; + playerCyber.setColor(cyberColor); + game.addPlayer(IDCyber, playerCyber); //initialize the playerData for(Map.Entry entry : game.getPlayers().entrySet()){ @@ -156,6 +180,17 @@ public void disconnectClient(int id) { game.getBoard().getPlayerData().get(hostColor).removePieceFromWaitingArea(); } + //declare pieces of cyber here + pieceCyber0= game.getBoard().getPlayerData().get(cyberColor).getPieces()[0]; + pieceCyber1= game.getBoard().getPlayerData().get(cyberColor).getPieces()[1]; + pieceCyber2= game.getBoard().getPlayerData().get(cyberColor).getPieces()[2]; + pieceCyber3= game.getBoard().getPlayerData().get(cyberColor).getPieces()[3]; + + //clear waiting-area of cyber + for (int i = 0; i < 4; i++) { + game.getBoard().getPlayerData().get(cyberColor).removePieceFromWaitingArea(); + } + //set the Client-pieces here game.getBoard().setPieceOnBoard(25, pieceClient0); //for UC 02, 03.01, 14,4 game.getBoard().getPlayerData().get(clientColor).setPieceInHome(1, pieceClient1); //set piece in Home at 2 slot for UC 18,12,13,11 @@ -169,6 +204,13 @@ public void disconnectClient(int id) { game.getBoard().getPlayerData().get(hostColor).addWaitingPiece(pieceClient2); //set in waitingArea fur uc 5 game.getBoard().setPieceOnBoard(0, pieceHost3); //for uc 9 + //set the pieces of cyber + + game.getBoard().setPieceOnBoard(10,pieceCyber0); // for UC 6,7,8 + game.getBoard().setPieceOnBoard(12,pieceCyber1); // + game.getBoard().getPlayerData().get(cyberColor).addWaitingPiece(pieceClient3); //for uc 7 + //game..... todo + //initializes the states gameState= serverGameLogic.getGameState(); turnState= gameState.getTurnState(); @@ -178,6 +220,8 @@ public void disconnectClient(int id) { selectPieceState= choosePieceState.getSelectPieceState(); powerCardState = turnState.getPowerCardState(); playPowerCardState = turnState.getPlayPowerCardState(); + waitingPieceState =serverGameLogic.getGameState().getTurnState().getChoosePieceState().getWaitingPieceState(); + startPieceState = serverGameLogic.getGameState().getTurnState().getChoosePieceState().getStartPieceState(); //initialize dies die1 = new Die(1); @@ -386,6 +430,12 @@ public void testLeaveWaitingArea() { //send requestDice serverGameLogic.received(new RequestDieMessage(),IDHost); + //tests if the sever is in selectPiece + assertEquals(serverGameLogic.getCurrentState(),gameState); + assertEquals(gameState.getCurrentState(), turnState); + assertEquals(turnState.getCurrentState(),choosePieceState); + assertEquals(choosePieceState.getCurrentState(),waitingPieceState); + //send requestMove-message serverGameLogic.received(new RequestMoveMessage(pieceHost2.getUuid()),IDHost); @@ -405,7 +455,53 @@ public void testLeaveWaitingArea() { */ @Test public void testMustLeaveStartingField() { - // TODO: Implement test logic for a piece that must leave the starting field + //sends the server in firstRoll + serverGameLogic.setCurrentState(gameState); + gameState.setCurrentState(turnState); + turnState.setCurrentState(rollDiceState); + rollDiceState.setCurrentState(firstRollState); + + //tests if the server is in firstRoll + assertEquals(serverGameLogic.getCurrentState(),gameState); + assertEquals(gameState.getCurrentState(), turnState); + assertEquals(turnState.getCurrentState(),rollDiceState); + assertEquals(rollDiceState.getCurrentState(),firstRollState); + + //sets the activePlayer to cyber + game.setActiveColor(cyberColor); + + //set Dice to 4 + game.setDie(die4); + + //send requestDiceMessage + serverGameLogic.received(new RequestDieMessage(),IDCyber); + + //tests if the sever is in startPiece + serverGameLogic.setCurrentState(gameState); + gameState.setCurrentState(turnState); + turnState.setCurrentState(choosePieceState); + choosePieceState.setCurrentState(startPieceState); + + //send requestMoveMessage + serverGameLogic.received(new RequestMoveMessage(pieceHost1.getUuid()),IDCyber); + + //tests if the cyberPiece2 has moved + assertTrue(game.getBoard().getInfield()[12].isOccupied()); + assertEquals(game.getBoard().getInfield()[12].getOccupant(),pieceCyber1); + + //tests if the sever is in startPiece + serverGameLogic.setCurrentState(gameState); + gameState.setCurrentState(turnState); + turnState.setCurrentState(choosePieceState); + choosePieceState.setCurrentState(startPieceState); + + //send requestMoveMessage + serverGameLogic.received(new RequestMoveMessage(pieceHost0.getUuid()),IDCyber); + + //tests if the piece is moved + assertTrue(game.getBoard().getInfield()[14].isOccupied()); + assertEquals(game.getBoard().getInfield()[14].getOccupant(),pieceHost0); + assertFalse(game.getBoard().getInfield()[10].isOccupied()); } /** @@ -427,7 +523,58 @@ public void testDontHaveToLeaveStartingField() { */ @Test public void testCantLeaveStartingField() { - // TODO: Implement test logic for when a piece can't leave the starting field + //sends the server in firstRoll + serverGameLogic.setCurrentState(gameState); + gameState.setCurrentState(turnState); + turnState.setCurrentState(rollDiceState); + rollDiceState.setCurrentState(firstRollState); + + //tests if the server is in firstRoll + assertEquals(serverGameLogic.getCurrentState(),gameState); + assertEquals(gameState.getCurrentState(), turnState); + assertEquals(turnState.getCurrentState(),rollDiceState); + assertEquals(rollDiceState.getCurrentState(),firstRollState); + + //sets the activePlayer to cyber + game.setActiveColor(cyberColor); + + //set Dice to two + game.setDie(die2); + + //send requestDiceMessage + serverGameLogic.received(new RequestDieMessage(),IDCyber); + + //tests if the sever is in selectPiece + assertEquals(serverGameLogic.getCurrentState(),gameState); + assertEquals(gameState.getCurrentState(), turnState); + assertEquals(turnState.getCurrentState(),choosePieceState); + assertEquals(choosePieceState.getCurrentState(),selectPieceState); + + //send requestMoveMessage + serverGameLogic.received(new RequestMoveMessage(pieceCyber0.getUuid()),IDCyber); + + //tests if the sever is in selectPiece + assertEquals(serverGameLogic.getCurrentState(),gameState); + assertEquals(gameState.getCurrentState(), turnState); + assertEquals(turnState.getCurrentState(),choosePieceState); + assertEquals(choosePieceState.getCurrentState(),selectPieceState); + + //tests if the cyberPiece0 is still at its idx + assertTrue(game.getBoard().getInfield()[10].isOccupied()); + assertEquals(game.getBoard().getInfield()[10].getOccupant(),pieceHost0); + + //sets the dice to 2 + game.setDie(die2); + + //send the requestMove-Message + serverGameLogic.received(new RequestMoveMessage(pieceCyber1.getUuid()),IDCyber); + + //tests if the pieceCyber + assertTrue(game.getBoard().getInfield()[14].isOccupied()); + assertEquals(game.getBoard().getInfield()[14].getOccupant(),pieceHost1); + + + } /**