summaryrefslogtreecommitdiff
path: root/backend/src
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src')
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/controllers/GameBrowserControllerTest.kt21
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/controllers/LobbyControllerTest.kt36
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/lobby/LobbyTest.kt61
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/repositories/LobbyRepositoryTest.kt13
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/repositories/PlayerRepositoryTest.kt13
-rw-r--r--backend/src/test/kotlin/org/luxons/sevenwonders/validation/DestinationAccessValidatorTest.kt25
6 files changed, 113 insertions, 56 deletions
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/GameBrowserControllerTest.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/GameBrowserControllerTest.kt
index 98506fd0..343b7f34 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/GameBrowserControllerTest.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/GameBrowserControllerTest.kt
@@ -11,6 +11,7 @@ import org.luxons.sevenwonders.repositories.PlayerNotFoundException
import org.luxons.sevenwonders.repositories.PlayerRepository
import org.luxons.sevenwonders.test.mockSimpMessagingTemplate
import kotlin.test.assertEquals
+import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
import kotlin.test.assertTrue
@@ -54,15 +55,17 @@ class GameBrowserControllerTest {
assertEquals(player.toDTO(principal.name), lobby.players[0])
}
- @Test(expected = PlayerNotFoundException::class)
+ @Test
fun createGame_failsForUnknownPlayer() {
val principal = TestPrincipal("unknown")
-
val action = CreateGameAction("Test Game")
- gameBrowserController.createGame(action, principal)
+
+ assertFailsWith<PlayerNotFoundException> {
+ gameBrowserController.createGame(action, principal)
+ }
}
- @Test(expected = UserAlreadyInGameException::class)
+ @Test
fun createGame_failsWhenAlreadyInGame() {
playerRepository.createOrUpdate("testuser", "Test User")
val principal = TestPrincipal("testuser")
@@ -75,7 +78,9 @@ class GameBrowserControllerTest {
val createGameAction2 = CreateGameAction("Test Game 2")
// already in a game
- gameBrowserController.createGame(createGameAction2, principal)
+ assertFailsWith<UserAlreadyInGameException> {
+ gameBrowserController.createGame(createGameAction2, principal)
+ }
}
@Test
@@ -97,7 +102,7 @@ class GameBrowserControllerTest {
assertEquals(joiner.toDTO(joinerPrincipal.name), joinedLobby.players[1])
}
- @Test(expected = UserAlreadyInGameException::class)
+ @Test
fun joinGame_failsWhenAlreadyInGame() {
playerRepository.createOrUpdate("testowner", "Test User Owner")
val ownerPrincipal = TestPrincipal("testowner")
@@ -112,6 +117,8 @@ class GameBrowserControllerTest {
// joins the game
gameBrowserController.joinGame(joinGameAction, joinerPrincipal)
// should fail because already in a game
- gameBrowserController.joinGame(joinGameAction, joinerPrincipal)
+ assertFailsWith<UserAlreadyInGameException> {
+ gameBrowserController.joinGame(joinGameAction, joinerPrincipal)
+ }
}
}
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/LobbyControllerTest.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/LobbyControllerTest.kt
index 6e417970..a140e000 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/LobbyControllerTest.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/controllers/LobbyControllerTest.kt
@@ -17,6 +17,7 @@ import org.luxons.sevenwonders.repositories.PlayerRepository
import org.luxons.sevenwonders.test.mockSimpMessagingTemplate
import java.util.HashMap
import kotlin.test.assertEquals
+import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
import kotlin.test.assertSame
import kotlin.test.assertTrue
@@ -49,17 +50,23 @@ class LobbyControllerTest {
assertFalse(owner.isInGame)
}
- @Test(expected = PlayerNotFoundException::class)
+ @Test
fun leave_failsWhenPlayerDoesNotExist() {
val principal = TestPrincipal("I don't exist")
- lobbyController.leave(principal)
+
+ assertFailsWith<PlayerNotFoundException> {
+ lobbyController.leave(principal)
+ }
}
- @Test(expected = PlayerNotInLobbyException::class)
+ @Test
fun leave_failsWhenNotInLobby() {
playerRepository.createOrUpdate("testuser", "Test User")
val principal = TestPrincipal("testuser")
- lobbyController.leave(principal)
+
+ assertFailsWith<PlayerNotInLobbyException> {
+ lobbyController.leave(principal)
+ }
}
@Test
@@ -111,7 +118,7 @@ class LobbyControllerTest {
assertEquals(reorderedPlayers, lobby.getPlayers())
}
- @Test(expected = PlayerIsNotOwnerException::class)
+ @Test
fun reorderPlayers_failsForPeasant() {
val player = playerRepository.createOrUpdate("testuser", "Test User")
val lobby = lobbyRepository.create("Test Game", player)
@@ -124,7 +131,10 @@ class LobbyControllerTest {
val reorderPlayersAction = ReorderPlayersAction(playerNames)
val principal = TestPrincipal("testuser2")
- lobbyController.reorderPlayers(reorderPlayersAction, principal)
+
+ assertFailsWith<PlayerIsNotOwnerException> {
+ lobbyController.reorderPlayers(reorderPlayersAction, principal)
+ }
}
@Test
@@ -147,7 +157,7 @@ class LobbyControllerTest {
assertEquals(newSettings, lobby.settings)
}
- @Test(expected = PlayerIsNotOwnerException::class)
+ @Test
fun updateSettings_failsForPeasant() {
val player = playerRepository.createOrUpdate("testuser", "Test User")
val lobby = lobbyRepository.create("Test Game", player)
@@ -158,7 +168,10 @@ class LobbyControllerTest {
val updateSettingsAction = UpdateSettingsAction(CustomizableSettings())
val principal = TestPrincipal("testuser2")
- lobbyController.updateSettings(updateSettingsAction, principal)
+
+ assertFailsWith<PlayerIsNotOwnerException> {
+ lobbyController.updateSettings(updateSettingsAction, principal)
+ }
}
@Test
@@ -176,7 +189,7 @@ class LobbyControllerTest {
assertSame(State.PLAYING, lobby.state)
}
- @Test(expected = PlayerIsNotOwnerException::class)
+ @Test
fun startGame_failsForPeasant() {
val player = playerRepository.createOrUpdate("testuser", "Test User")
val lobby = lobbyRepository.create("Test Game", player)
@@ -185,7 +198,10 @@ class LobbyControllerTest {
addPlayer(lobby, "testuser3")
val principal = TestPrincipal("testuser2")
- lobbyController.startGame(principal)
+
+ assertFailsWith<PlayerIsNotOwnerException> {
+ lobbyController.startGame(principal)
+ }
}
private fun addPlayer(lobby: Lobby, username: String): Player {
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/lobby/LobbyTest.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/lobby/LobbyTest.kt
index 98e154da..967a97e2 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/lobby/LobbyTest.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/lobby/LobbyTest.kt
@@ -3,12 +3,10 @@ package org.luxons.sevenwonders.lobby
import org.junit.Assume.assumeTrue
import org.junit.Before
import org.junit.BeforeClass
-import org.junit.Rule
import org.junit.Test
import org.junit.experimental.theories.DataPoints
import org.junit.experimental.theories.Theories
import org.junit.experimental.theories.Theory
-import org.junit.rules.ExpectedException
import org.junit.runner.RunWith
import org.luxons.sevenwonders.game.api.CustomizableSettings
import org.luxons.sevenwonders.game.data.GameDefinition
@@ -19,6 +17,7 @@ import org.luxons.sevenwonders.lobby.Lobby.PlayerOverflowException
import org.luxons.sevenwonders.lobby.Lobby.PlayerUnderflowException
import org.luxons.sevenwonders.lobby.Lobby.UnknownPlayerException
import kotlin.test.assertEquals
+import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
import kotlin.test.assertNotNull
import kotlin.test.assertSame
@@ -27,10 +26,6 @@ import kotlin.test.assertTrue
@RunWith(Theories::class)
class LobbyTest {
- @JvmField
- @Rule
- var thrown = ExpectedException.none()
-
private lateinit var gameOwner: Player
private lateinit var lobby: Lobby
@@ -95,26 +90,32 @@ class LobbyTest {
assertSame(lobby, player.lobby)
}
- @Test(expected = PlayerNameAlreadyUsedException::class)
+ @Test
fun addPlayer_failsOnSameName() {
val player = Player("testuser", "Test User")
val player2 = Player("testuser2", "Test User")
lobby.addPlayer(player)
- lobby.addPlayer(player2)
+ assertFailsWith<PlayerNameAlreadyUsedException> {
+ lobby.addPlayer(player2)
+ }
}
- @Test(expected = PlayerOverflowException::class)
+ @Test
fun addPlayer_playerOverflowWhenTooMany() {
- // the owner + the max number gives an overflow
- addPlayers(gameDefinition.maxPlayers)
+ assertFailsWith<PlayerOverflowException> {
+ // the owner + the max number gives an overflow
+ addPlayers(gameDefinition.maxPlayers)
+ }
}
- @Test(expected = GameAlreadyStartedException::class)
+ @Test
fun addPlayer_failWhenGameStarted() {
// total with owner is the minimum
addPlayers(gameDefinition.minPlayers - 1)
lobby.startGame()
- lobby.addPlayer(Player("soonerNextTime", "The Late Guy"))
+ assertFailsWith<GameAlreadyStartedException> {
+ lobby.addPlayer(Player("soonerNextTime", "The Late Guy"))
+ }
}
private fun addPlayers(nbPlayers: Int) {
@@ -124,9 +125,11 @@ class LobbyTest {
}
}
- @Test(expected = UnknownPlayerException::class)
+ @Test
fun removePlayer_failsWhenNotPresent() {
- lobby.removePlayer("anyname")
+ assertFailsWith<UnknownPlayerException> {
+ lobby.removePlayer("anyname")
+ }
}
@Test
@@ -157,40 +160,52 @@ class LobbyTest {
assertEquals(reorderedUsernames, lobby.getPlayers().map { it.username })
}
- @Test(expected = PlayerListMismatchException::class)
+ @Test
fun reorderPlayers_failsOnUnknownPlayer() {
val player1 = Player("testuser1", "Test User 1")
val player2 = Player("testuser2", "Test User 2")
lobby.addPlayer(player1)
lobby.addPlayer(player2)
- lobby.reorderPlayers(listOf("unknown", "testuser2", "gameowner"))
+
+ assertFailsWith<PlayerListMismatchException> {
+ lobby.reorderPlayers(listOf("unknown", "testuser2", "gameowner"))
+ }
}
- @Test(expected = PlayerListMismatchException::class)
+ @Test
fun reorderPlayers_failsOnExtraPlayer() {
val player1 = Player("testuser1", "Test User 1")
val player2 = Player("testuser2", "Test User 2")
lobby.addPlayer(player1)
lobby.addPlayer(player2)
- lobby.reorderPlayers(listOf("testuser2", "onemore", "testuser1", "gameowner"))
+
+ assertFailsWith<PlayerListMismatchException> {
+ lobby.reorderPlayers(listOf("testuser2", "onemore", "testuser1", "gameowner"))
+ }
}
- @Test(expected = PlayerListMismatchException::class)
+ @Test
fun reorderPlayers_failsOnMissingPlayer() {
val player1 = Player("testuser1", "Test User 1")
val player2 = Player("testuser2", "Test User 2")
lobby.addPlayer(player1)
lobby.addPlayer(player2)
- lobby.reorderPlayers(listOf("testuser2", "gameowner"))
+
+ assertFailsWith<PlayerListMismatchException> {
+ lobby.reorderPlayers(listOf("testuser2", "gameowner"))
+ }
}
@Theory
fun startGame_failsBelowMinPlayers(nbPlayers: Int) {
assumeTrue(nbPlayers < gameDefinition.minPlayers)
- thrown.expect(PlayerUnderflowException::class.java)
+
// there is already the owner
addPlayers(nbPlayers - 1)
- lobby.startGame()
+
+ assertFailsWith<PlayerUnderflowException> {
+ lobby.startGame()
+ }
}
@Theory
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/LobbyRepositoryTest.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/LobbyRepositoryTest.kt
index 84f7eacf..446feee6 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/LobbyRepositoryTest.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/LobbyRepositoryTest.kt
@@ -3,6 +3,7 @@ package org.luxons.sevenwonders.repositories
import org.junit.Before
import org.junit.Test
import org.luxons.sevenwonders.lobby.Player
+import kotlin.test.assertFailsWith
import kotlin.test.assertNotNull
import kotlin.test.assertSame
import kotlin.test.assertTrue
@@ -38,9 +39,11 @@ class LobbyRepositoryTest {
assertTrue(lobby.isOwner(owner.username))
}
- @Test(expected = LobbyNotFoundException::class)
+ @Test
fun find_failsOnUnknownId() {
- repository.find(123)
+ assertFailsWith<LobbyNotFoundException> {
+ repository.find(123)
+ }
}
@Test
@@ -52,9 +55,11 @@ class LobbyRepositoryTest {
assertSame(lobby2, repository.find(lobby2.id))
}
- @Test(expected = LobbyNotFoundException::class)
+ @Test
fun remove_failsOnUnknownId() {
- repository.remove(123)
+ assertFailsWith<LobbyNotFoundException> {
+ repository.remove(123)
+ }
}
@Test
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/PlayerRepositoryTest.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/PlayerRepositoryTest.kt
index e364275d..aeedc54c 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/PlayerRepositoryTest.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/repositories/PlayerRepositoryTest.kt
@@ -3,6 +3,7 @@ package org.luxons.sevenwonders.repositories
import org.junit.Before
import org.junit.Test
import kotlin.test.assertEquals
+import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
import kotlin.test.assertSame
import kotlin.test.assertTrue
@@ -42,9 +43,11 @@ class PlayerRepositoryTest {
assertEquals("Much Better Name", player1Updated.displayName)
}
- @Test(expected = PlayerNotFoundException::class)
+ @Test
fun find_failsOnUnknownUsername() {
- repository.find("anyUsername")
+ assertFailsWith<PlayerNotFoundException> {
+ repository.find("anyUsername")
+ }
}
@Test
@@ -55,9 +58,11 @@ class PlayerRepositoryTest {
assertSame(player2, repository.find("player2"))
}
- @Test(expected = PlayerNotFoundException::class)
+ @Test
fun remove_failsOnUnknownUsername() {
- repository.remove("anyUsername")
+ assertFailsWith<PlayerNotFoundException> {
+ repository.remove("anyUsername")
+ }
}
@Test
diff --git a/backend/src/test/kotlin/org/luxons/sevenwonders/validation/DestinationAccessValidatorTest.kt b/backend/src/test/kotlin/org/luxons/sevenwonders/validation/DestinationAccessValidatorTest.kt
index 88853b6c..85d03e99 100644
--- a/backend/src/test/kotlin/org/luxons/sevenwonders/validation/DestinationAccessValidatorTest.kt
+++ b/backend/src/test/kotlin/org/luxons/sevenwonders/validation/DestinationAccessValidatorTest.kt
@@ -6,6 +6,7 @@ import org.luxons.sevenwonders.lobby.Lobby
import org.luxons.sevenwonders.lobby.Player
import org.luxons.sevenwonders.repositories.LobbyNotFoundException
import org.luxons.sevenwonders.repositories.LobbyRepository
+import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
import kotlin.test.assertTrue
@@ -68,28 +69,36 @@ class DestinationAccessValidatorTest {
assertTrue(destinationAccessValidator.hasAccess("testUser", "/lobby/notANumber/suffix"))
}
- @Test(expected = LobbyNotFoundException::class)
+ @Test
fun validate_failWhenNoLobbyExist() {
- destinationAccessValidator.hasAccess("", "/lobby/0")
+ assertFailsWith<LobbyNotFoundException> {
+ destinationAccessValidator.hasAccess("", "/lobby/0")
+ }
}
- @Test(expected = LobbyNotFoundException::class)
+ @Test
fun validate_failWhenNoGameExist() {
- destinationAccessValidator.hasAccess("", "/game/0")
+ assertFailsWith<LobbyNotFoundException> {
+ destinationAccessValidator.hasAccess("", "/game/0")
+ }
}
- @Test(expected = LobbyNotFoundException::class)
+ @Test
fun validate_failWhenReferencedLobbyDoesNotExist() {
createLobby("Test Game", "ownerUser1")
createLobby("Test Game 2", "ownerUser2")
- destinationAccessValidator.hasAccess("doesNotMatter", "/lobby/3")
+ assertFailsWith<LobbyNotFoundException> {
+ destinationAccessValidator.hasAccess("doesNotMatter", "/lobby/3")
+ }
}
- @Test(expected = LobbyNotFoundException::class)
+ @Test
fun validate_failWhenReferencedGameDoesNotExist() {
createGame("Test Game 1", "user1", "user2", "user3")
createGame("Test Game 2", "user4", "user5", "user6")
- destinationAccessValidator.hasAccess("doesNotMatter", "/game/3")
+ assertFailsWith<LobbyNotFoundException> {
+ destinationAccessValidator.hasAccess("doesNotMatter", "/game/3")
+ }
}
@Test
bgstack15