added two new pieceTests

This commit is contained in:
Benjamin Feyer
2024-12-02 22:10:11 +01:00
parent bd55a1f08d
commit 50ac201277

View File

@@ -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<Integer, Player> 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);
}
/**