From 70e31e15c72b8bb8444dffae10798487bee3dcdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Brennf=C3=B6rder?= Date: Fri, 13 Dec 2024 10:58:13 +0100 Subject: [PATCH] added StartDialogTest and started PlayerTests --- .../mdga/client/Dialog/StartDialogTest.java | 75 ++++- .../test/java/pp/mdga/game/PlayerTest.java | 308 ++++++++++++++++++ 2 files changed, 377 insertions(+), 6 deletions(-) create mode 100644 Projekte/mdga/model/src/test/java/pp/mdga/game/PlayerTest.java diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/StartDialogTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/StartDialogTest.java index f1d88ac3..beacb341 100644 --- a/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/StartDialogTest.java +++ b/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/StartDialogTest.java @@ -2,38 +2,101 @@ import org.junit.Before; import org.junit.Test; +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientSender; +import pp.mdga.client.DialogsState; +import pp.mdga.client.dialogstate.LobbyState; +import pp.mdga.client.dialogstate.NetworkDialogState; +import pp.mdga.client.dialogstate.StartDialogState; +import pp.mdga.game.Color; +import pp.mdga.game.Game; +import pp.mdga.game.Player; +import pp.mdga.server.ServerGameLogic; +import pp.mdga.server.ServerSender; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; /** * this test-class tests the testcases T072-T075 */ public class StartDialogTest { + + private Game game; + + private ClientSender clientSender; + private ClientGameLogic clientGameLogic; + + //declare player-Client here + private Player playerClient; + private String nameClient = "Client"; + private Color clientColor; + private int IDClient; + + private DialogsState dialogs; + private StartDialogState startDialogState; + private NetworkDialogState networkDialogState; + @Before public void setUp() { - // This method will be executed before each test. - // Initialize common objects or setup required state for Start Dialog actions. + + clientSender = mock(ClientSender.class); + clientGameLogic = new ClientGameLogic(clientSender); + + playerClient = new Player(); + IDClient = 1; + + dialogs = clientGameLogic.getDialogs(); + startDialogState = dialogs.getStartDialog(); + networkDialogState = dialogs.getNetworkDialog(); } // UC-StartDialog-01 @Test public void testEnterName() { - // TODO: Implement test logic for entering a player name + // test if client is in the Start Dialog + clientGameLogic.setState(dialogs); + dialogs.setState(startDialogState); + assertEquals(dialogs, clientGameLogic.getState()); + assertEquals(startDialogState, dialogs.getState()); + + assertEquals(null, clientGameLogic.getOwnPlayerName()); + clientGameLogic.setOwnPlayerName(nameClient); + assertEquals(nameClient, clientGameLogic.getOwnPlayerName()); } // UC-StartDialog-02 @Test public void testJoinServer() { - // TODO: Implement test logic for joining a game server + // test if client is in the Start Dialog + clientGameLogic.setState(dialogs); + dialogs.setState(startDialogState); + assertEquals(dialogs, clientGameLogic.getState()); + assertEquals(startDialogState, dialogs.getState()); + + clientGameLogic.getDialogs().setState(networkDialogState); + assertEquals(dialogs, clientGameLogic.getState()); + assertEquals(networkDialogState, dialogs.getState()); } // UC-StartDialog-03 @Test public void testHostServer() { - // TODO: Implement test logic for hosting a server + // test if client is in the Start Dialog + clientGameLogic.setState(dialogs); + dialogs.setState(startDialogState); + assertEquals(dialogs, clientGameLogic.getState()); + assertEquals(startDialogState, dialogs.getState()); + + clientGameLogic.getDialogs().setState(networkDialogState); + clientGameLogic.setHost(true); + assertEquals(dialogs, clientGameLogic.getState()); + assertEquals(networkDialogState, dialogs.getState()); + assertEquals(true, clientGameLogic.isHost()); } // UC-StartDialog-04 @Test public void testExitGame() { - // TODO: Implement test logic for exiting the game } } diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/game/PlayerTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/game/PlayerTest.java new file mode 100644 index 00000000..4ef17abe --- /dev/null +++ b/Projekte/mdga/model/src/test/java/pp/mdga/game/PlayerTest.java @@ -0,0 +1,308 @@ +package pp.mdga.game; + +import org.junit.Before; +import org.junit.Test; +import pp.mdga.game.card.PowerCard; +import pp.mdga.message.server.ServerMessage; +import pp.mdga.server.ServerGameLogic; +import pp.mdga.server.ServerSender; +import pp.mdga.server.automaton.GameState; +import pp.mdga.server.automaton.game.TurnState; +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.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 pp.mdga.visitor.Visitor; + +import java.util.ArrayList; +import java.util.Map; + +import static org.junit.Assert.assertTrue; + +public class PlayerTest { + + //declare game here + private Game game; + + //declare server here + private ServerGameLogic serverGameLogic; + + //declare player-Client here + private Player playerClient; + private String nameClient = "Client"; + private Color clientColor; + + //declare pieces of client here + private Piece pieceClient0; + private Piece pieceClient1; + private Piece pieceClient2; + private Piece pieceClient3; + + //declare player-host here + private Player playerHost; + private String nameHost = "Host"; + private Color hostColor; + + //declare pieces of host here + private Piece pieceHost0; + private Piece pieceHost1; + private Piece pieceHost2; + private Piece pieceHost3; + + //ID's for player + private int IDHost; + private int IDClient; + + //declare states + GameState gameState; + TurnState turnState; + RollDiceState rollDiceState; + FirstRollState firstRollState; + ChoosePieceState choosePieceState; + SelectPieceState selectPieceState; + PowerCardState powerCardState; + PlayPowerCardState playPowerCardState; + WaitingPieceState waitingPieceState; + StartPieceState startPieceState; + + //declare dies + private Die die1; + private Die die2; + private Die die3; + private Die die4; + private Die die5; + private Die die6; + + //declare PowerCards here + PowerCard swapCard = new PowerCard() { + @Override + public void accept(Visitor visitor) { + + } + }; + + PowerCard shieldCard = new PowerCard() { + @Override + public void accept(Visitor visitor) { + + } + }; + + PowerCard turboCard = new PowerCard() { + @Override + public void accept(Visitor visitor) {} + }; + + private ArrayList handCards = new ArrayList<>(); + + @Before + public void Setup() { + game = new Game(); + //initialize server here + serverGameLogic = new ServerGameLogic(new ServerSender() { + @Override + public void send(int id, ServerMessage message) { + + } + + @Override + public void broadcast(ServerMessage message) { + + } + + @Override + public void disconnectClient(int id) { + + } + + @Override + public void shutdown() { + + } + }, game); + + IDHost = 1; + IDClient = 2; + + //declare player-Client here + playerClient = new Player(nameClient); + clientColor = Color.ARMY; + playerClient.setColor(clientColor); + playerClient.initialize(); + playerClient.setHandCards(handCards); + game.addPlayer(IDClient, playerClient); + + //declare player-host here + playerHost = new Player(nameHost); + hostColor = Color.NAVY; + playerHost.setColor(hostColor); + playerHost.initialize(); + playerHost.setHandCards(handCards); + game.addPlayer(IDHost, playerHost); + + //initialize the playerData + for(Map.Entry entry : game.getPlayers().entrySet()){ + game.addPlayer(entry.getKey(), entry.getValue()); + } + + + //declare pieces of client here + pieceClient0 = game.getPlayerByColor(clientColor).getWaitingArea()[0]; + pieceClient1 = game.getPlayerByColor(clientColor).getWaitingArea()[1]; + pieceClient2 = game.getPlayerByColor(clientColor).getWaitingArea()[2]; + pieceClient3 = game.getPlayerByColor(clientColor).getWaitingArea()[3]; + + //clear waiting-area of Client + for (int i = 0; i < 4; i++) { + game.getPlayerByColor(clientColor).getWaitingArea()[i] = null; + } + + + //declare pieces of host here + pieceHost0 = game.getPlayerByColor(hostColor).getWaitingArea()[0]; + pieceHost1 = game.getPlayerByColor(hostColor).getWaitingArea()[1]; + pieceHost2 = game.getPlayerByColor(hostColor).getWaitingArea()[2]; + pieceHost3 = game.getPlayerByColor(hostColor).getWaitingArea()[3]; + + //clear waiting-area of Client + for (int i = 0; i < 4; i++) { + game.getPlayerByColor(hostColor).getWaitingArea()[i] = null; + } + + PieceState active = PieceState.ACTIVE; + PieceState home = PieceState.HOME; + //set the Client-pieces here + game.getBoard().setPieceOnBoard(25, pieceClient0); + pieceClient0.setState(active); + game.getPlayerByColor(clientColor).setPieceInHome(1, pieceClient1); + pieceClient1.setState(home); + game.getBoard().setPieceOnBoard(19, pieceClient2); + pieceClient2.setState(active); + + + //set the host-pieces here + game.getBoard().setPieceOnBoard(28, pieceHost0); //for UC 02,14 ,15, 03.01,4 + pieceHost0.setState(active); + game.getBoard().setPieceOnBoard(18, pieceHost1); //for UC 1, 10, 17, 16 + pieceHost1.setState(active); + game.getPlayerByColor(hostColor).addWaitingPiece(pieceClient2);//set in waitingArea fur uc 5 + game.getBoard().setPieceOnBoard(0, pieceHost3); //for uc 9 + pieceHost3.setState(active); + + //initializes the states + gameState= serverGameLogic.getGameState(); + turnState= gameState.getTurnState(); + rollDiceState= turnState.getRollDiceState(); + firstRollState= rollDiceState.getFirstRollState(); + choosePieceState= turnState.getChoosePieceState(); + 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); + die2= new Die(2); + die3 = new Die(3); + die4 = new Die(4); + die5 = new Die(5); + die6 = new Die(6); + + handCards = new ArrayList<>(); + handCards.add(shieldCard); + handCards.add(swapCard); + handCards.add(turboCard); + } + + @Test + public void testRollNo6AndCanMove() { + + }@Test + public void testRoll6AndCanMove() { + + }@Test + public void testDieChance() { + Die die = new Die(); + die.setDieModifier(1); + + ArrayList one = new ArrayList<>(); + ArrayList two = new ArrayList<>(); + ArrayList three = new ArrayList<>(); + ArrayList four = new ArrayList<>(); + ArrayList five = new ArrayList<>(); + ArrayList six = new ArrayList<>(); + for (int i = 0; i < 6000000; i++) { + die.modify(); + switch (die.shuffle()) { + case 1 -> one.add(1); + case 2 -> two.add(2); + case 3 -> three.add(3); + case 4 -> four.add(4); + case 5 -> five.add(5); + case 6 -> six.add(6); + } + } + + //test with 2% range for the correct changes + assertTrue(980000 < one.size() && one.size() < 1020000); + assertTrue(980000 < two.size() && two.size() < 1020000); + assertTrue(980000 < three.size() && three.size() < 1020000); + assertTrue(980000 < four.size() && four.size() < 1020000); + assertTrue(980000 < five.size() && five.size() < 1020000); + assertTrue(980000 < six.size() && six.size() < 1020000); + } + + @Test + public void testRollNo6AndCantMove() { + } + @Test + public void testRoll6AndCantMove() { + } + @Test + public void testSelectOwnPieceBeforeRollingDice() { + } + @Test + public void testSwitchPieceBeforeRollingDice() { + } + @Test + public void testSelectOwnPieceAfterRollingDice() { + } + @Test + public void testSwitchPieceAfterRollingDice() { + } + @Test + public void testSelectOpponentPiece() { + } + @Test + public void testSwitchOpponentPiece() { + } + @Test + public void testDeselectPiece() { + + } + @Test + public void testSelectBonusCard() { + + } +@Test + public void testDeselectBonusCard() { + } +@Test + public void testPlayTurboCard() { + + } +@Test + public void testPlayShieldCard() { + } +@Test + public void testPlaySwapCard() { + } +@Test + public void testConfirmChoice() { + } +}