feat: Game-Service mit CRUD und Suche (Issue 1)
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user