|
|
|
@ -12,76 +12,76 @@ import kotlin.test.assertEquals
|
|
|
|
|
import kotlin.test.assertNotEquals |
|
|
|
|
import models.Player |
|
|
|
|
import org.junit.jupiter.api.Assertions.assertFalse |
|
|
|
|
import org.junit.jupiter.api.Assertions.assertThrows |
|
|
|
|
import org.junit.jupiter.api.Assertions.assertTrue |
|
|
|
|
import org.junit.jupiter.api.Nested |
|
|
|
|
import org.junit.jupiter.api.Test |
|
|
|
|
|
|
|
|
|
class PlayerServiceTest { |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `should add new player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
@Nested |
|
|
|
|
inner class AddPlayerTest { |
|
|
|
|
@Test |
|
|
|
|
fun `should add new player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns false |
|
|
|
|
every { mockDB.createPlayer(any()) } just Runs |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
assertTrue(playerService.isEmpty()) |
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(uuid) } returns false |
|
|
|
|
every { mockDB.createPlayer(any()) } just Runs |
|
|
|
|
|
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
assertTrue(playerService.isEmpty()) |
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
assertTrue(playerService.containsPlayer(uuid)) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
verify(exactly = 1) { mockDB.findUUID(uuid) } |
|
|
|
|
verify(exactly = 1) { mockDB.createPlayer(any()) } |
|
|
|
|
confirmVerified(mockDB) |
|
|
|
|
} |
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
assertTrue(playerService.containsPlayer(uuid)) |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `should add existing player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
player.joinTime = LocalDateTime.now().minusDays(1) |
|
|
|
|
val originalPlayer = player.copy() |
|
|
|
|
verify(exactly = 1) { mockDB.findByID(uuid) } |
|
|
|
|
verify(exactly = 1) { mockDB.createPlayer(any()) } |
|
|
|
|
confirmVerified(mockDB) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
@Test |
|
|
|
|
fun `should add existing player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
|
|
|
|
|
assertTrue(playerService.isEmpty()) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
assertTrue(playerService.containsPlayer(uuid)) |
|
|
|
|
val extract = playerService.getPlayer(uuid) |
|
|
|
|
assertTrue(playerService.isEmpty()) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
assertNotEquals(originalPlayer.joinTime, extract.joinTime) |
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
assertTrue(playerService.containsPlayer(uuid)) |
|
|
|
|
|
|
|
|
|
verify(exactly = 1) { mockDB.findUUID(uuid) } |
|
|
|
|
verify(exactly = 1) { mockDB.readPlayer(uuid) } |
|
|
|
|
confirmVerified(mockDB) |
|
|
|
|
} |
|
|
|
|
verify(exactly = 1) { mockDB.findByID(any()) } |
|
|
|
|
verify(exactly = 1) { mockDB.readPlayer(any()) } |
|
|
|
|
confirmVerified(mockDB) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `throws exception if the uuid is already in the map`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
@Test |
|
|
|
|
fun `should change join time by existing player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
player.joinTime = LocalDateTime.now().minusDays(1) |
|
|
|
|
val originalPlayer = player.copy() |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns false |
|
|
|
|
every { mockDB.createPlayer(any()) } just Runs |
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
|
|
|
|
|
val exception: Exception = assertThrows(UnsupportedOperationException::class.java) { |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
assertEquals("Trying to add playerName to the instance that already exists", exception.message) |
|
|
|
|
val extract = playerService.getPlayer(uuid) |
|
|
|
|
|
|
|
|
|
assertNotEquals(originalPlayer.joinTime, extract.joinTime) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@ -90,9 +90,9 @@ class PlayerServiceTest {
|
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
every { mockDB.writePlayer(player) } just Runs |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
every { mockDB.writePlayer(any()) } just Runs |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
@ -102,71 +102,101 @@ class PlayerServiceTest {
|
|
|
|
|
playerService.removePlayer(uuid) |
|
|
|
|
|
|
|
|
|
assertTrue(playerService.isEmpty()) |
|
|
|
|
|
|
|
|
|
verify(exactly = 1) { mockDB.writePlayer(player) } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `persist a player from the map`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
@Nested |
|
|
|
|
inner class PersistPlayerTest { |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
every { mockDB.writePlayer(player) } just Runs |
|
|
|
|
@Test |
|
|
|
|
fun `persist a player from the map to the db`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
every { mockDB.writePlayer(any()) } just Runs |
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
playerService.persistPlayer(uuid) |
|
|
|
|
playerService.persistPlayer(uuid) |
|
|
|
|
|
|
|
|
|
verify(exactly = 1) { mockDB.writePlayer(player) } |
|
|
|
|
} |
|
|
|
|
verify(exactly = 1) { mockDB.writePlayer(any()) } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `persist all player from the map`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
@Test |
|
|
|
|
fun `persist a player from the map to the db with updated playtime`() { |
|
|
|
|
val captureList = mutableListOf<Player>() |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
every { mockDB.writePlayer(player) } just Runs |
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
every { mockDB.writePlayer(capture(captureList)) } just Runs |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
playerService.persistPlayer(uuid) |
|
|
|
|
|
|
|
|
|
assertEquals(1, captureList.size) |
|
|
|
|
assertNotEquals(Duration.ZERO, captureList.first().playTime) |
|
|
|
|
|
|
|
|
|
verify(exactly = 1) { mockDB.writePlayer(any()) } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `persist all player from the map`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val uuid2 = UUID.randomUUID() |
|
|
|
|
|
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
val player2 = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
every { mockDB.readPlayer(uuid2) } returns player2 |
|
|
|
|
every { mockDB.writePlayer(any()) } just Runs |
|
|
|
|
|
|
|
|
|
playerService.persistAllPlayer() |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
playerService.addPlayer(uuid2, "playerName") |
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
|
|
|
|
|
playerService.persistAllPlayer() |
|
|
|
|
|
|
|
|
|
verify(exactly = 1) { mockDB.writePlayer(player) } |
|
|
|
|
verify(exactly = 2) { mockDB.writePlayer(any()) } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `get player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
@Nested |
|
|
|
|
inner class GetPlayerTest { |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
every { mockDB.writePlayer(player) } just Runs |
|
|
|
|
@Test |
|
|
|
|
fun `get player`() { |
|
|
|
|
val uuid = UUID.randomUUID() |
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
|
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
playerService.addPlayer(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val extractedPlayer = playerService.getPlayer(uuid) |
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
|
|
|
|
|
assertEquals(player.uuid, extractedPlayer.uuid) |
|
|
|
|
assertEquals(player.playerName, extractedPlayer.playerName) |
|
|
|
|
assertEquals(player.playTime, extractedPlayer.playTime) |
|
|
|
|
val extractedPlayer = playerService.getPlayer(uuid) |
|
|
|
|
|
|
|
|
|
assertEquals(player.uuid, extractedPlayer.uuid) |
|
|
|
|
assertEquals(player.playerName, extractedPlayer.playerName) |
|
|
|
|
assertEquals(player.playTime, extractedPlayer.playTime) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@ -175,8 +205,8 @@ class PlayerServiceTest {
|
|
|
|
|
val player = Player(uuid, "playerName") |
|
|
|
|
|
|
|
|
|
val mockDB = mockk<PlayerTimeDB>() |
|
|
|
|
every { mockDB.findUUID(uuid) } returns true |
|
|
|
|
every { mockDB.readPlayer(uuid) } returns player |
|
|
|
|
every { mockDB.findByID(any()) } returns true |
|
|
|
|
every { mockDB.readPlayer(any()) } returns player |
|
|
|
|
|
|
|
|
|
val playerService = PlayerService(mockDB) |
|
|
|
|
|
|
|
|
@ -184,14 +214,7 @@ class PlayerServiceTest {
|
|
|
|
|
|
|
|
|
|
assertFalse(playerService.isEmpty()) |
|
|
|
|
|
|
|
|
|
assertNotEquals(0, playerService.timePlayed(uuid).toNanos()) |
|
|
|
|
assertNotEquals(Duration.ZERO, playerService.timePlayed(uuid)) |
|
|
|
|
assertEquals(Duration.ZERO, playerService.getPlayer(uuid).playTime) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `duration`() { |
|
|
|
|
|
|
|
|
|
val duration = Duration.ZERO.plusSeconds(100) |
|
|
|
|
assertEquals(200, duration.plus(Duration.ZERO.plusSeconds(100)).toSeconds()) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|