From df22fc5b3930a300c925df83c8ea08913d67cc12 Mon Sep 17 00:00:00 2001 From: ADato88 Date: Thu, 10 Feb 2022 11:24:03 +0100 Subject: [PATCH] refactoring vom AussetzenKarteAufStapelLegenTest Code --- .../MiniGames/Client/ViewModel/Uno.cs | 21 +++++++---- BlazorSolution/MiniGamesTests/UnoTest.cs | 36 +++++++++++++++---- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs index 231837e..41586ac 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs @@ -129,29 +129,36 @@ namespace MiniGames.Client.ViewModel } } - public void AussetzenKarteSpielerWahl(int aktuellerSpielerId, bool uhrZeigerSinn) + private void AussetzenKarteSpielerWahl(int aktuellerSpielerId, bool uhrZeigerSinn) { - var aktuellerSpielerIndex = Spieler.FindIndex(x => x.SpielerModel.Id == aktuellerSpielerId); if (uhrZeigerSinn) { - if (aktuellerSpielerIndex == Spieler.Count() - 1) + if (aktuellerSpielerId == Spieler.LastOrDefault().SpielerModel.Id) { NaechsterSpielerId = 2; } + else if (aktuellerSpielerId == Spieler.LastOrDefault().SpielerModel.Id - 1) + { + NaechsterSpielerId = 1; + } else { - NaechsterSpielerId = Spieler[aktuellerSpielerIndex + 2].SpielerModel.Id; + NaechsterSpielerId = aktuellerSpielerId + 2; } } else { - if (aktuellerSpielerIndex != 0) + if (aktuellerSpielerId > 2) + { + NaechsterSpielerId = aktuellerSpielerId - 2; + } + else if (aktuellerSpielerId == 2) { - NaechsterSpielerId = Spieler[aktuellerSpielerIndex - 2].SpielerModel.Id; + NaechsterSpielerId = Spieler.LastOrDefault().SpielerModel.Id; } else { - NaechsterSpielerId = Spieler[Spieler.Count() - 2].SpielerModel.Id; + NaechsterSpielerId = Spieler.LastOrDefault().SpielerModel.Id - 1; } } } diff --git a/BlazorSolution/MiniGamesTests/UnoTest.cs b/BlazorSolution/MiniGamesTests/UnoTest.cs index 2f21ff9..e85debd 100644 --- a/BlazorSolution/MiniGamesTests/UnoTest.cs +++ b/BlazorSolution/MiniGamesTests/UnoTest.cs @@ -91,6 +91,14 @@ namespace MiniGamesTests BeispielSpielerModelsFüllen(4, "Klaus"); BeispielSpielerModelsFüllen(5, "Brigitte"); break; + case 6: + BeispielSpielerModelsFüllen(1, "Hans"); + BeispielSpielerModelsFüllen(2, "Peter"); + BeispielSpielerModelsFüllen(3, "Anna"); + BeispielSpielerModelsFüllen(4, "Klaus"); + BeispielSpielerModelsFüllen(5, "Brigitte"); + BeispielSpielerModelsFüllen(6, "Morty"); + break; default: break; } @@ -361,7 +369,24 @@ namespace MiniGamesTests [Theory] [InlineData(4, 1, 3, true)] - private void AussetzenKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerIndex, int naechsterSpielerIndex, bool uhrzeigerSinn) + [InlineData(4, 1, 3, false)] + [InlineData(4, 2, 4, true)] + [InlineData(4, 2, 4, false)] + [InlineData(4, 3, 1, true)] + [InlineData(4, 3, 1, false)] + [InlineData(6, 1, 3, true)] + [InlineData(6, 1, 5, false)] + [InlineData(6, 2, 4, true)] + [InlineData(6, 2, 6, false)] + [InlineData(6, 3, 5, true)] + [InlineData(6, 3, 1, false)] + [InlineData(6, 4, 6, true)] + [InlineData(6, 4, 2, false)] + [InlineData(6, 5, 1, true)] + [InlineData(6, 5, 3, false)] + [InlineData(6, 6, 2, true)] + [InlineData(6, 6, 4, false)] + private void AussetzenKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerId, int naechsterSpielerId, bool uhrzeigerSinn) { //arrange UnoRegeln.ZiehKartenStapelZusammenstellen(); @@ -372,17 +397,16 @@ namespace MiniGamesTests UnoRegeln.SpielerErstellen(spieler.SpielerName); } - var erwartetNaechsterSpielerIndex = naechsterSpielerIndex; - var _aktuellerSpielerIndex = aktuellerSpielerIndex; + var erwartetNaechsterSpielerId = naechsterSpielerId; + var _aktuellerSpielerId = aktuellerSpielerId; var beispielZuLegendeKarte = BeispielKarte(Kartenbezeichnung.AussetzenKarte.ToString(), Farbe.Rot.ToString(), true); UnoRegeln.Uhrzeigersinn = uhrzeigerSinn; //act - UnoRegeln.KarteAufStapelLegen(UnoRegeln.Spieler[_aktuellerSpielerIndex].SpielerModel.Id, beispielZuLegendeKarte); + UnoRegeln.KarteAufStapelLegen(_aktuellerSpielerId, beispielZuLegendeKarte); //assert - - Assert.Equal(erwartetNaechsterSpielerIndex, UnoRegeln.Spieler.FindIndex(x => x.SpielerModel.Id == UnoRegeln.NaechsterSpielerId)); + Assert.Equal(erwartetNaechsterSpielerId, UnoRegeln.NaechsterSpielerId); } #region Stapel erstellen