25 lines
789 B
Python
25 lines
789 B
Python
"""Tests of the guess game use case."""
|
|
|
|
import pytest
|
|
|
|
from higher_lower.application.guess_game import GuessGame
|
|
from higher_lower.constants import MAX_NUMBER, MIN_NUMBER
|
|
from higher_lower.domain.rules import GuessResult
|
|
|
|
|
|
def test_check_reports_low_high_and_correct() -> None:
|
|
game = GuessGame(5)
|
|
assert game.check(2) is GuessResult.LOW
|
|
assert game.check(8) is GuessResult.HIGH
|
|
assert game.check(5) is GuessResult.CORRECT
|
|
|
|
|
|
@pytest.mark.parametrize("guess", [MIN_NUMBER, MAX_NUMBER])
|
|
def test_is_in_range_accepts_limits(guess: int) -> None:
|
|
assert GuessGame(5).is_in_range(guess)
|
|
|
|
|
|
@pytest.mark.parametrize("guess", [MIN_NUMBER - 1, MAX_NUMBER + 1])
|
|
def test_is_in_range_rejects_values_just_outside(guess: int) -> None:
|
|
assert not GuessGame(5).is_in_range(guess)
|