diff options
| author | Marco de Wild <mdwild@sogyo.nl> | 2021-01-14 14:42:57 +0100 |
|---|---|---|
| committer | Marco de Wild <mdwild@sogyo.nl> | 2021-01-14 14:42:57 +0100 |
| commit | f08b1441134aff874a18b48814fc50fcbf314e7f (patch) | |
| tree | 676941da8a2b6927549d2159925d7c4c95ed96b1 /api/src/test/java | |
| parent | 3befa777192df0b2cabb75ccdbcd66bc1878b562 (diff) | |
Added a stub for the API
Diffstat (limited to 'api/src/test/java')
| -rw-r--r-- | api/src/test/java/mancala/api/StartMancalaTest.java | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/api/src/test/java/mancala/api/StartMancalaTest.java b/api/src/test/java/mancala/api/StartMancalaTest.java new file mode 100644 index 0000000..0c4b23f --- /dev/null +++ b/api/src/test/java/mancala/api/StartMancalaTest.java @@ -0,0 +1,96 @@ +package mancala.api; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +import jakarta.servlet.http.*; +import jakarta.ws.rs.core.*; + +import mancala.api.models.*; +import mancala.domain.MancalaImpl; + +public class StartMancalaTest { + @Test + public void startingMancalaShouldBeAllowed() { + var response = startMancala("Mario", "Luigi"); + assertEquals(200, response.getStatus()); + } + + @Test + public void startingMancalaReturnsAGameWithoutAWinner() { + var response = startMancala("Mario", "Luigi"); + var entity = (Mancala)response.getEntity(); + var gameState = entity.getGameStatus(); + assertFalse(gameState.getEndOfGame()); + assertNull(gameState.getWinner()); + } + + @Test + public void startingMancalaReturnsThePlayerData() { + var response = startMancala("Mario", "Luigi"); + var entity = (Mancala)response.getEntity(); + var players = entity.getPlayers(); + assertEquals(2, players.length); + assertEquals("Mario", players[0].getName()); + assertEquals("Luigi", players[1].getName()); + } + + @Test + public void startingMancalaReturnsThePits() { + var response = startMancala("Mario", "Luigi"); + var entity = (Mancala)response.getEntity(); + var players = entity.getPlayers(); + assertEquals(7, players[0].getPits().length); + assertEquals(0, players[0].getPits()[0].getIndex()); + assertEquals(4, players[0].getPits()[0].getNrOfStones()); + assertEquals(0, players[0].getPits()[6].getNrOfStones()); + assertEquals(7, players[1].getPits().length); + assertEquals(7, players[1].getPits()[0].getIndex()); + assertEquals(4, players[1].getPits()[0].getNrOfStones()); + assertEquals(0, players[1].getPits()[6].getNrOfStones()); + } + + @Test + public void startingMancalaStartsANewSession() { + startMancala("Mario", "Luigi"); + verify(request).getSession(true); + } + + @Test + public void startingMancalaSavesTheNewGameInASession() { + startMancala("Mario", "Luigi"); + verify(session).setAttribute(eq("mancala"), any(MancalaImpl.class)); + } + + @Test + public void startingMancalaSavesTheNamesInASession() { + startMancala("Mario", "Luigi"); + verify(session).setAttribute("player1", "Mario"); + verify(session).setAttribute("player2", "Luigi"); + } + + private Response startMancala(String namePlayer1, String namePlayer2) { + var servlet = new StartMancala(); + var request = createRequestContext(); + var input = playerInput(namePlayer1, namePlayer2); + return servlet.initialize(request, input); + } + + private HttpServletRequest createRequestContext() { + request = mock(HttpServletRequest.class); + session = mock(HttpSession.class); + when(request.getSession(true)).thenReturn(session); + return request; + } + + private HttpServletRequest request; + private HttpSession session; + + private PlayerInput playerInput(String namePlayer1, String namePlayer2) { + var input = new PlayerInput(); + input.setNameplayer1(namePlayer1); + input.setNameplayer2(namePlayer2); + return input; + } +}
\ No newline at end of file |
