added some testmethods for piecetest

This commit is contained in:
Benjamin Feyer
2024-12-02 03:38:38 +01:00
parent 5e61727bec
commit 2cb8e512e6

View File

@@ -4,6 +4,9 @@
import org.junit.Test; import org.junit.Test;
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.SelectCardMessage;
import pp.mdga.message.client.SelectedPiecesMessage;
import pp.mdga.message.server.MoveMessage; import pp.mdga.message.server.MoveMessage;
import pp.mdga.message.server.SelectPieceMessage; import pp.mdga.message.server.SelectPieceMessage;
import pp.mdga.message.server.ServerMessage; import pp.mdga.message.server.ServerMessage;
@@ -12,11 +15,14 @@
import pp.mdga.server.automaton.GameState; import pp.mdga.server.automaton.GameState;
import pp.mdga.server.automaton.game.TurnState; import pp.mdga.server.automaton.game.TurnState;
import pp.mdga.server.automaton.game.turn.ChoosePieceState; import pp.mdga.server.automaton.game.turn.ChoosePieceState;
import pp.mdga.server.automaton.game.turn.PlayPowerCardState;
import pp.mdga.server.automaton.game.turn.PowerCardState;
import pp.mdga.server.automaton.game.turn.RollDiceState; 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.SelectPieceState;
import pp.mdga.server.automaton.game.turn.rolldice.FirstRollState; import pp.mdga.server.automaton.game.turn.rolldice.FirstRollState;
import java.sql.SQLOutput; import java.sql.SQLOutput;
import java.util.Arrays;
import java.util.Map; import java.util.Map;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@@ -65,6 +71,8 @@ public class PieceTest {
FirstRollState firstRollState; FirstRollState firstRollState;
ChoosePieceState choosePieceState; ChoosePieceState choosePieceState;
SelectPieceState selectPieceState; SelectPieceState selectPieceState;
PowerCardState powerCardState;
PlayPowerCardState playPowerCardState;
//declare dies //declare dies
private Die die1; private Die die1;
@@ -174,6 +182,8 @@ public void disconnectClient(int id) {
firstRollState= rollDiceState.getFirstRollState(); firstRollState= rollDiceState.getFirstRollState();
choosePieceState= turnState.getChoosePieceState(); choosePieceState= turnState.getChoosePieceState();
selectPieceState= choosePieceState.getSelectPieceState(); selectPieceState= choosePieceState.getSelectPieceState();
powerCardState = turnState.getPowerCardState();
playPowerCardState = turnState.getPlayPowerCardState();
//initialize dies //initialize dies
die1 = new Die(1); die1 = new Die(1);
@@ -231,7 +241,6 @@ public void testMove() {
*/ */
@Test @Test
public void testCantMove() { public void testCantMove() {
// TODO: Implement test logic for when a piece can't move
//sends the server in selectPiece //sends the server in selectPiece
serverGameLogic.setCurrentState(gameState); serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState); serverGameLogic.getGameState().setCurrentState(turnState);
@@ -245,21 +254,20 @@ public void testCantMove() {
assertEquals(choosePieceState.getCurrentState(),selectPieceState); assertEquals(choosePieceState.getCurrentState(),selectPieceState);
//set active player to army //set active player to army
game.setActiveColor(hostColor); game.setActiveColor(clientColor);
//set die-class //set die-class
game.setDie(die2); game.setDie(die2);
//send request Die-message //send request Die-message
serverGameLogic.received(new RequestDieMessage(),IDHost); serverGameLogic.received(new RequestDieMessage(),IDClient);
//send requestMove-Message //send requestMove-Message
serverGameLogic.received(new RequestMoveMessage(pieceHost2.getUuid()),IDHost); serverGameLogic.received(new RequestMoveMessage(pieceClient2.getUuid()),IDClient);
//tests if the hostPiece2 is still at idx 19 and the server is still in selectable pieces //tests if the hostPiece2 is still at idx 19 and the server is still in selectable pieces
assertTrue(game.getBoard().getInfield()[19].isOccupied()); assertTrue(game.getBoard().getInfield()[19].isOccupied());
assertEquals(game.getBoard().getInfield()[19].getOccupant(),pieceHost2); assertEquals(game.getBoard().getInfield()[19].getOccupant(),pieceClient2);
assertEquals(serverGameLogic.getCurrentState(),gameState); assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState); assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState); assertEquals(turnState.getCurrentState(),choosePieceState);
@@ -285,7 +293,38 @@ public void testNoPossibleMove() {
*/ */
@Test @Test
public void testThrow() { public void testThrow() {
// TODO: Implement test logic for throwing a piece off the board //sends the server in selectPiece
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(choosePieceState);
serverGameLogic.getGameState().getTurnState().getChoosePieceState().setCurrentState(selectPieceState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState);
assertEquals(choosePieceState.getCurrentState(),selectPieceState);
//set active player to host
game.setActiveColor(hostColor);
//set Dice to 1
game.setDie(die1);
//send requestDice
serverGameLogic.received(new RequestDieMessage(),IDHost);
//send requestMove-message
serverGameLogic.received(new RequestMoveMessage(pieceHost1.getUuid()),IDHost);
//tests if the idx is unoccupied
assertFalse(game.getBoard().getInfield()[19].isOccupied());
//tests if the idx 20 is occupied
assertTrue(game.getBoard().getInfield()[20].isOccupied());
//tests if the piece on idx 20 is pieceHost1
assertEquals(game.getBoard().getInfield()[20].getOccupant(),pieceHost1);
} }
/** /**
@@ -296,7 +335,32 @@ public void testThrow() {
*/ */
@Test @Test
public void testGetThrown() { public void testGetThrown() {
// TODO: Implement test logic for when a piece gets thrown //sends the server in selectPiece
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(choosePieceState);
serverGameLogic.getGameState().getTurnState().getChoosePieceState().setCurrentState(selectPieceState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState);
assertEquals(choosePieceState.getCurrentState(),selectPieceState);
//set active player to host
game.setActiveColor(hostColor);
//set Dice to 1
game.setDie(die1);
//send requestDice
serverGameLogic.received(new RequestDieMessage(),IDHost);
//send requestMove-message
serverGameLogic.received(new RequestMoveMessage(pieceHost1.getUuid()),IDHost);
//tests if pieceClient2 is waitingArea
assertTrue(Arrays.stream(game.getBoard().getPlayerData().get(clientColor).getWaitingArea()).toList().contains(pieceClient2));
} }
/** /**
@@ -307,7 +371,36 @@ public void testGetThrown() {
*/ */
@Test @Test
public void testLeaveWaitingArea() { public void testLeaveWaitingArea() {
// TODO: Implement test logic for a piece leaving the waiting area //sends the server in selectPiece
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(choosePieceState);
serverGameLogic.getGameState().getTurnState().getChoosePieceState().setCurrentState(selectPieceState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState);
assertEquals(choosePieceState.getCurrentState(),selectPieceState);
//set active player to host
game.setActiveColor(hostColor);
//set Dice to 6
game.setDie(die6);
//send requestDice
serverGameLogic.received(new RequestDieMessage(),IDHost);
//send requestMove-message
serverGameLogic.received(new RequestMoveMessage(pieceHost2.getUuid()),IDHost);
//tests if the waitingArea does not include the piece anymore
assertFalse(Arrays.stream(game.getBoard().getPlayerData().get(hostColor).getWaitingArea()).toList().contains(pieceHost2));
//tests if the pieceHost3 is at idx 30
assertTrue(game.getBoard().getInfield()[30].isOccupied());
assertEquals(game.getBoard().getInfield()[30].getOccupant(),pieceHost2);
} }
/** /**
@@ -525,7 +618,41 @@ public void testOnStartingFieldWithShield() {
*/ */
@Test @Test
public void testThrowFigureWithShield() { public void testThrowFigureWithShield() {
// TODO: Implement test logic for attempting to throw a figure with a shield //set clientPiece2 the shield active
pieceClient2.setShield(ShieldState.ACTIVE);
//set host as active player
game.setActiveColor(hostColor);
//set die to 1
game.setDie(die1);
//sends the server in selectPiece
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(choosePieceState);
serverGameLogic.getGameState().getTurnState().getChoosePieceState().setCurrentState(selectPieceState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState);
assertEquals(choosePieceState.getCurrentState(),selectPieceState);
//send requestDice
serverGameLogic.received(new RequestDieMessage(),IDHost);
//send requestMove of hostPiece1
serverGameLogic.received(new RequestMoveMessage(pieceHost1.getUuid()),IDHost);
//tests if the clientPiece2 is still at idx 19 and hostPiece1 at idx 18 and clientPiece2 shield is still active
assertTrue(game.getBoard().getInfield()[19].isOccupied());
assertTrue(game.getBoard().getInfield()[18].isOccupied());
assertEquals(game.getBoard().getInfield()[18].getOccupant(),pieceHost1);
assertEquals(game.getBoard().getInfield()[19].getOccupant(),pieceClient2);
assertEquals(pieceClient2.getShield(),ShieldState.ACTIVE);
} }
/** /**
@@ -536,7 +663,37 @@ public void testThrowFigureWithShield() {
*/ */
@Test @Test
public void testUseSwap() { public void testUseSwap() {
// TODO: Implement test logic for using a swap power-up //send the server in choosePowerCard
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(powerCardState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),powerCardState);
//set activePlayer to Host
game.setActiveColor(hostColor);
//sends the requestPlayCard
serverGameLogic.received(new SelectCardMessage(BonusCard.SWAP),IDHost);
//sends the selectedPiece-message
serverGameLogic.received(RequestPlayCardMessage.requestPlaySwap(pieceHost0.getUuid(),pieceClient0.getUuid()),IDHost);
//tests if the piece at idx 25 is pieceHost0 and at idx 28 is pieceClient0
assertTrue(game.getBoard().getInfield()[25].isOccupied());
assertEquals(game.getBoard().getInfield()[25].getOccupant(),pieceHost0);
assertTrue(game.getBoard().getInfield()[28].isOccupied());
assertEquals(game.getBoard().getInfield()[28].getOccupant(),pieceClient0);
//tests if the server is in playPowerCard
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),playPowerCardState);
} }
/** /**
@@ -547,7 +704,32 @@ public void testUseSwap() {
*/ */
@Test @Test
public void testUseShield() { public void testUseShield() {
// TODO: Implement test logic for using a shield power-up //send the server in choosePowerCard
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(powerCardState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),powerCardState);
//set activePlayer to Host
game.setActiveColor(hostColor);
//sends the requestPlayCard
serverGameLogic.received(new SelectCardMessage(BonusCard.SHIELD),IDHost);
//sends the selectedPiece-message
serverGameLogic.received(RequestPlayCardMessage.requestPlayShield(pieceHost0.getUuid()),IDHost);
//tests if the piece at idx 28 has a shield
assertEquals(pieceHost0.getShield(),ShieldState.ACTIVE);
//tests if the server is in playPowerCard
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),playPowerCardState);
} }
/** /**
@@ -569,15 +751,32 @@ public void testLoseShield() {
*/ */
@Test @Test
public void testFinishedPiece() { public void testFinishedPiece() {
// TODO: Implement test logic for a piece that has finished the game //sends the server in selectPiece
serverGameLogic.setCurrentState(gameState);
serverGameLogic.getGameState().setCurrentState(turnState);
serverGameLogic.getGameState().getTurnState().setCurrentState(choosePieceState);
serverGameLogic.getGameState().getTurnState().getChoosePieceState().setCurrentState(selectPieceState);
//tests if the server is in selectPieces
assertEquals(serverGameLogic.getCurrentState(),gameState);
assertEquals(gameState.getCurrentState(), turnState);
assertEquals(turnState.getCurrentState(),choosePieceState);
assertEquals(choosePieceState.getCurrentState(),selectPieceState);
//sets the active color to client //sets the active color to client
game.setActiveColor(clientColor);
//set the dice-class seed to 2 //set the dice to 2
game.setDie(die2);
//sends the requestDie-Message //sends the requestDie-Message
serverGameLogic.received(new RequestDieMessage(),IDClient);
//sends the requestMove-Message //sends the requestMove-Message
serverGameLogic.received(new RequestMoveMessage(pieceClient1.getUuid()),IDClient);
//tests if the Piece is in the final position and is marked as home-finished //tests if the Piece is in the final position and is marked as home-finished
assertTrue(game.getBoard().getPlayerData().get(clientColor).getHomeNodes()[3].isOccupied());
assertEquals(game.getBoard().getPlayerData().get(clientColor).getHomeNodes()[3].getOccupant(),pieceClient1);
assertEquals(pieceClient1.getState(),PieceState.HOMEFINISHED);
} }
} }