package domain

import ch.tutteli.atrium.api.fluent.en_GB.feature
import ch.tutteli.atrium.api.fluent.en_GB.size
import ch.tutteli.atrium.api.fluent.en_GB.toBeLessThan
import ch.tutteli.atrium.api.fluent.en_GB.toEqual
import ch.tutteli.atrium.api.fluent.en_GB.toHaveSize
import ch.tutteli.atrium.api.verbs.expect
import kotlin.test.Test

class GameTest {

    @Test
    fun `ensure generated game is valid`() {
        val game = generateGame()
        expect(game) {
            feature(Game::areCategoriesValid).toEqual(true)
            feature(Game::areRulesViolated).toEqual(false)
            feature(Game::clues) {
                feature(List<Clue>::size).toBeLessThan(30)
            }
        }
    }

}