fixed some tests

This commit is contained in:
Benjamin Feyer
2024-12-12 02:58:30 +01:00
parent 4dda9229b3
commit d12b0b6a77

View File

@@ -3,11 +3,13 @@
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import pp.mdga.game.card.PowerCard; import pp.mdga.game.card.PowerCard;
import pp.mdga.game.card.SwapCard;
import pp.mdga.message.client.AnimationEndMessage; import pp.mdga.message.client.AnimationEndMessage;
import pp.mdga.message.client.RequestDieMessage; import pp.mdga.message.client.RequestDieMessage;
import pp.mdga.message.client.RequestMoveMessage; import pp.mdga.message.client.RequestMoveMessage;
import pp.mdga.message.client.RequestPlayCardMessage; import pp.mdga.message.client.RequestPlayCardMessage;
import pp.mdga.message.client.SelectCardMessage; import pp.mdga.message.client.SelectCardMessage;
import pp.mdga.message.client.SelectedPiecesMessage;
import pp.mdga.message.server.ServerMessage; import pp.mdga.message.server.ServerMessage;
import pp.mdga.server.ServerGameLogic; import pp.mdga.server.ServerGameLogic;
import pp.mdga.server.ServerSender; import pp.mdga.server.ServerSender;
@@ -152,24 +154,24 @@ public void shutdown() {
//declare player-Client here //declare player-Client here
playerClient = new Player(nameClient); playerClient = new Player(nameClient);
playerClient.initialize();
clientColor = Color.ARMY; clientColor = Color.ARMY;
playerClient.setColor(clientColor); playerClient.setColor(clientColor);
playerClient.initialize();
game.addPlayer(IDClient, playerClient); game.addPlayer(IDClient, playerClient);
//declare player-host here //declare player-host here
playerHost = new Player(nameHost); playerHost = new Player(nameHost);
playerHost.initialize();
hostColor = Color.NAVY; hostColor = Color.NAVY;
playerHost.setColor(hostColor); playerHost.setColor(hostColor);
playerHost.initialize();
game.addPlayer(IDHost, playerHost); game.addPlayer(IDHost, playerHost);
//declare playerCyber here //declare playerCyber here
nameCyber = "Cyber"; nameCyber = "Cyber";
playerCyber = new Player(nameCyber); playerCyber = new Player(nameCyber);
playerCyber.initialize();
cyberColor = Color.CYBER; cyberColor = Color.CYBER;
playerCyber.setColor(cyberColor); playerCyber.setColor(cyberColor);
playerCyber.initialize();
game.addPlayer(IDCyber, playerCyber); game.addPlayer(IDCyber, playerCyber);
//initialize the playerData //initialize the playerData
@@ -914,9 +916,11 @@ public void testActiveHomePiece() {
//sends the request-Dice-message //sends the request-Dice-message
serverGameLogic.received(new RequestDieMessage(),IDClient); serverGameLogic.received(new RequestDieMessage(),IDClient);
serverGameLogic.received(new AnimationEndMessage(),IDClient);
//sends the requestMove-message for pieceClient1 //sends the requestMove-message for pieceClient1
serverGameLogic.received(new RequestMoveMessage(pieceHost1),IDClient); serverGameLogic.received(new RequestMoveMessage(pieceClient1),IDClient);
//tests if clientPiece1 is in the home at idx 3 //tests if clientPiece1 is in the home at idx 3
assertTrue(game.getPlayerByColor(clientColor).getHomeNodes()[3].isOccupied()); assertTrue(game.getPlayerByColor(clientColor).getHomeNodes()[3].isOccupied());
@@ -929,8 +933,14 @@ public void testActiveHomePiece() {
* Use Case UC-Piece-11: Ensure that a piece cannot jump over another piece in the house area. * Use Case UC-Piece-11: Ensure that a piece cannot jump over another piece in the house area.
* </p> * </p>
*/ */
@Test @Test (expected = RuntimeException.class)
public void testCantJumpOverFigureInHouse() { public void testCantJumpOverFigureInHouse() {
//set activePlayer to client
game.setActiveColor(clientColor);
pieceClient2.setState(PieceState.ACTIVE);
pieceClient1.setState(PieceState.HOME);
//sends the server in firstRoll //sends the server in firstRoll
serverGameLogic.setCurrentState(gameState); serverGameLogic.setCurrentState(gameState);
gameState.setCurrentState(turnState); gameState.setCurrentState(turnState);
@@ -943,21 +953,29 @@ public void testCantJumpOverFigureInHouse() {
assertEquals(turnState.getCurrentState(),rollDiceState); assertEquals(turnState.getCurrentState(),rollDiceState);
assertEquals(rollDiceState.getCurrentState(),firstRollState); assertEquals(rollDiceState.getCurrentState(),firstRollState);
//set activePlayer to client
game.setActiveColor(clientColor);
//set the die in Game to 4 //set the die in Game to 4
game.setDie(die4); game.setDie(die4);
//send requestDice-Message //send requestDice-Message
serverGameLogic.received(new RequestDieMessage(),IDClient); serverGameLogic.received(new RequestDieMessage(),IDClient);
serverGameLogic.received(new AnimationEndMessage(),IDClient);
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState);
assertEquals(choosePieceState.getCurrentState(),selectPieceState);
selectPieceState.setMoveablePieces(new ArrayList<>(List.of()));
System.out.println(selectPieceState);
System.out.println(game.getBoard().getInfieldIndexOfPiece(pieceClient2));
//sends requestMoveMessage with clientPiece 02 //sends requestMoveMessage with clientPiece 02
serverGameLogic.received(new RequestMoveMessage(pieceHost2),IDHost); serverGameLogic.received(new RequestMoveMessage(pieceClient2),IDClient);
System.out.println(game.getBoard().getInfieldIndexOfPiece(pieceClient2));
//tests, if the clientPiece02 is at idx 19 //tests, if the clientPiece02 is at idx 19
assertTrue(game.getBoard().getInfield()[19].isOccupied()); assertTrue(game.getBoard().getInfield()[19].isOccupied());
assertEquals(game.getBoard().getInfield()[20].getOccupant(),pieceClient2); assertEquals(game.getBoard().getInfield()[19].getOccupant(),pieceClient2);
} }
/** /**
@@ -968,6 +986,9 @@ public void testCantJumpOverFigureInHouse() {
*/ */
@Test @Test
public void testActiveHomePieceBlocked() { public void testActiveHomePieceBlocked() {
game.setActiveColor(clientColor);
turnState.setPlayer(playerClient);
//sends the server in firstRoll //sends the server in firstRoll
serverGameLogic.setCurrentState(gameState); serverGameLogic.setCurrentState(gameState);
gameState.setCurrentState(turnState); gameState.setCurrentState(turnState);
@@ -1007,6 +1028,8 @@ public void testActiveHomePieceBlocked() {
public void testOnStartingFieldWithShield() { public void testOnStartingFieldWithShield() {
//sets the color to host //sets the color to host
game.setActiveColor(hostColor); game.setActiveColor(hostColor);
game.getBoard().setPieceOnBoard(28,pieceHost1);
game.getBoard().setPieceOnBoard(18,null);
//sets the dice to 2 //sets the dice to 2
game.setDie(die2); game.setDie(die2);
@@ -1028,13 +1051,15 @@ public void testOnStartingFieldWithShield() {
//sends the requestDice-message //sends the requestDice-message
serverGameLogic.received(new RequestDieMessage(),IDHost); serverGameLogic.received(new RequestDieMessage(),IDHost);
serverGameLogic.received(new AnimationEndMessage(),IDHost);
pieceHost1.setShield(ShieldState.ACTIVE);
//sends the moveMessage //sends the moveMessage
serverGameLogic.received(new RequestMoveMessage(pieceHost1),IDHost); serverGameLogic.received(new RequestMoveMessage(pieceHost1),IDHost);
//tests the position of the hostPiece1 and that shield is suppressed //tests the position of the hostPiece1 and that shield is suppressed
assertTrue(game.getBoard().getInfield()[20].isOccupied()); assertTrue(game.getBoard().getInfield()[30].isOccupied());
assertEquals(game.getBoard().getInfield()[20].getOccupant(),pieceClient1); assertEquals(game.getBoard().getInfield()[30].getOccupant(),pieceHost1);
assertEquals(pieceHost1.getShield(),ShieldState.SUPPRESSED); assertEquals(pieceHost1.getShield(),ShieldState.SUPPRESSED);
} }
@@ -1092,24 +1117,40 @@ public void testThrowFigureWithShield() {
*/ */
@Test @Test
public void testUseSwap() { public void testUseSwap() {
//set activePlayer to Host
game.setActiveColor(hostColor);
PowerCard swap = new SwapCard();
playerHost.addHandCard(swap);
pieceClient0.setState(PieceState.ACTIVE);
pieceHost0.setShield(ShieldState.ACTIVE);
//send the server in choosePowerCard //send the server in choosePowerCard
serverGameLogic.setCurrentState(gameState); serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState); serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(powerCardState); serverGameLogic.getGameState().getTurnState().setCurrentState(powerCardState);
powerCardState.setSelectedCard(swap);
powerCardState.setCurrentState(powerCardState.getSwapCardState());
//tests if the server is in selectPieces //tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState); assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState); assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),powerCardState); assertEquals(turnState.getCurrentState(),powerCardState);
//set activePlayer to Host
game.setActiveColor(hostColor);
assertTrue(game.getBoard().getInfield()[25].isOccupied());
assertEquals(game.getBoard().getInfield()[25].getOccupant(),pieceClient0);
assertTrue(game.getBoard().getInfield()[28].isOccupied());
assertEquals(game.getBoard().getInfield()[28].getOccupant(),pieceHost0);
//sends the requestPlayCard //sends the requestPlayCard
serverGameLogic.received(new SelectCardMessage(swapCard),IDHost); serverGameLogic.received(new SelectCardMessage(swapCard),IDHost);
//sends the selectedPiece-message //sends the selectedPiece-message
serverGameLogic.received(RequestPlayCardMessage.requestPlaySwap(pieceHost0.getUuid(),pieceClient0.getUuid()),IDHost); serverGameLogic.received(new SelectedPiecesMessage(List.of(pieceHost0,pieceClient0)),IDHost);
System.out.println(game.getBoard().getInfieldIndexOfPiece(pieceClient0));
//tests if the piece at idx 25 is pieceHost0 and at idx 28 is pieceClient0 //tests if the piece at idx 25 is pieceHost0 and at idx 28 is pieceClient0
assertTrue(game.getBoard().getInfield()[25].isOccupied()); assertTrue(game.getBoard().getInfield()[25].isOccupied());