Files
BSN-Livesystem/tests/test_game_service.py

65 lines
2.0 KiB
Python

"""Tests für Game-Service."""
from src.services.game_service import GameService, Spiel
class TestGameService:
"""Tests für GameService."""
def test_hinzufuegen_id_wird_vergeben(self) -> None:
"""Hinzufügen eines Spiels → ID wird vergeben."""
service = GameService()
spiel = Spiel(name="Catan")
resultat = service.hinzufuegen(spiel)
assert resultat.id is not None
assert resultat.name == "Catan"
def test_alle_leere_liste_am_anfang(self) -> None:
"""Alle Spiele → leere Liste am Anfang."""
service = GameService()
assert service.alle() == []
def test_alle_zwei_spielenach_hinzufuegen(self) -> None:
"""Alle Spiele nach Hinzufügen → 2 Spiele."""
service = GameService()
s1 = Spiel(name="Catan")
s2 = Spiel(name="Ticket to Ride")
service.hinzufuegen(s1)
service.hinzufuegen(s2)
assert len(service.alle()) == 2
def test_suchen_nach_cat_finnt_catan(self) -> None:
"""Suchen nach 'cat' → findet Catan."""
service = GameService()
service.hinzufuegen(Spiel(name="Catan"))
ergebnis = service.suchen("cat")
assert len(ergebnis) == 1
assert ergebnis[0].name == "Catan"
def test_suchen_nach_xyz_ergebt_leere_liste(self) -> None:
"""Suchen nach 'xyz' → leere Liste."""
service = GameService()
service.hinzufuegen(Spiel(name="Catan"))
assert service.suchen("xyz") == []
def test_nach_id_aktives_spiel(self) -> None:
"""Nach ID holen → korrektes Spiel."""
service = GameService()
s = Spiel(name="Carcassonne")
service.hinzufuegen(s)
resultat = service.nach_id(1)
assert resultat is not None
assert resultat.name == "Carcassonne"
def test_nach_id_nicht_existent(self) -> None:
"""Nach ID holen → None bei nicht existenter ID."""
service = GameService()
assert service.nach_id(999) is None