65 lines
2.0 KiB
Python
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
|