PlayerHand test

This commit is contained in:
2025-03-05 17:49:53 +01:00
parent b6908cc712
commit 729e7f6adc
2 changed files with 54 additions and 1 deletions

View File

@@ -0,0 +1,42 @@
package eventDemo.app.entity
import io.kotest.core.spec.style.FunSpec
import io.kotest.matchers.ints.shouldBeExactly
import kotlin.test.assertNotNull
class PlayerHandKtTest :
FunSpec({
test("addCards") {
// Given
val playerNumbers = 4
val players = (1..playerNumbers).map { Player(name = "name $it") }.toSet()
val firstPlayer = players.first()
val playersHands: PlayerHands = players.associateWith { emptyList() }
val card = Card.NumericCard(0, Card.Color.Red)
// When
val newHands: PlayerHands = playersHands.addCards(firstPlayer, listOf(card))
assertNotNull(newHands[firstPlayer]).size shouldBeExactly 1
assertNotNull(newHands[players.last()]).size shouldBeExactly 0
}
test("removeCard") {
// Given
val playerNumbers = 4
val players = (1..playerNumbers).map { Player(name = "name $it") }.toSet()
val firstPlayer = players.first()
val card1 = Card.NumericCard(1, Card.Color.Red)
val card2 = Card.NumericCard(2, Card.Color.Red)
val playersHands: PlayerHands =
players
.associateWith<Player, List<Card>> { emptyList() }
.addCards(firstPlayer, listOf(card1, card2))
// When
val newHands: PlayerHands = playersHands.removeCard(firstPlayer, card1)
assertNotNull(newHands[firstPlayer]).size shouldBeExactly 1
assertNotNull(newHands[players.last()]).size shouldBeExactly 0
}
})