diff --git a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs index f501026..43fc36f 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs @@ -65,6 +65,9 @@ namespace MiniGames.Client.ViewModel } break; case _retoureKarte: + Uhrzeigersinn = !Uhrzeigersinn; + NaechsterSpielerWahl(id, Uhrzeigersinn); + _naechstenId = NaechsterSpielerId; break; case _aussetzenKarte: break; diff --git a/BlazorSolution/MiniGamesTests/UnoTest.cs b/BlazorSolution/MiniGamesTests/UnoTest.cs index ea91f71..7de2f5e 100644 --- a/BlazorSolution/MiniGamesTests/UnoTest.cs +++ b/BlazorSolution/MiniGamesTests/UnoTest.cs @@ -327,6 +327,37 @@ namespace MiniGamesTests Assert.Equal(nachstenSpielerKartenAnzahlErwartet, UnoRegeln.Spieler[_naechsterSpielerIndex].KartenModels.Count); } + + [Theory] + [InlineData(4, 0, 3, true)] + [InlineData(4, 0, 1, false)] + [InlineData(4, 2, 3, false)] + [InlineData(4, 3, 2, true)] + [InlineData(3, 1, 2, false)] + private void RetoureKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerIndex, int naechsterSpielerIndex, bool uhrzeigerSinn) + { + //arrange + UnoRegeln.ZiehKartenStapelZusammenstellen(); + BeispielMultipleSpielerModelsFüllen(anzahlSpieler); + + foreach (var spieler in SpielerModels) + { + UnoRegeln.SpielerErstellen(spieler.SpielerName); + } + + var erwartet = !uhrzeigerSinn; + var _aktuellerSpielerIndex = aktuellerSpielerIndex; + var beispielZuLegendeKarte = BeispielKarte(Kartenbezeichnung.RetoureKarte.ToString(), Farbe.Gelb.ToString(), true); + + //act + UnoRegeln.Uhrzeigersinn = uhrzeigerSinn; + UnoRegeln.KarteAufStapelLegen(UnoRegeln.Spieler[_aktuellerSpielerIndex].SpielerModel.Id, beispielZuLegendeKarte); + + //assert + Assert.Equal(naechsterSpielerIndex, UnoRegeln.Spieler.FindIndex(x => x.SpielerModel.Id == UnoRegeln.NaechsterSpielerId)); + } + + #region Stapel erstellen [Theory] [InlineData((Kartenbezeichnung)2, Farbe.Gelb, false, 19)]