From 04225dc7eb03b21b07f52557d71a4eb07d892025 Mon Sep 17 00:00:00 2001 From: Dato88 Date: Sat, 5 Feb 2022 16:56:03 +0100 Subject: [PATCH] nachsterSpielerTest erstellt --- .../MiniGames/Client/ViewModel/Uno.cs | 31 +++++++++++++++++-- BlazorSolution/MiniGamesTests/UnoTest.cs | 29 +++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs index 0b3ffb8..9c477ec 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs @@ -11,6 +11,7 @@ namespace MiniGames.Client.ViewModel public StapelModel KartenAblageStapel { get; set; } = new(); public StapelModel ZiehKartenStapel { get; set; } = new(); public List Spieler { get; set; } = new(); + public int NaechsterSpielerId { get; set; } public bool IstAblageStapelFarbeGleichZuLegendeKarte(string neueKarteFarbe) { @@ -87,6 +88,32 @@ namespace MiniGames.Client.ViewModel }); } + public void SpielerWahl(int aktuellerSpielerId, bool uhrZeigerSinn) + { + var aktuellerSpielerIndex = Spieler.FindIndex(x => x.SpielerModel.Id == aktuellerSpielerId); + if (uhrZeigerSinn) + { + if (aktuellerSpielerIndex == Spieler.Count() - 1) + { + NaechsterSpielerId = 1; + } + else + { + NaechsterSpielerId = Spieler[aktuellerSpielerIndex + 1].SpielerModel.Id; + } + } + else + { + if (aktuellerSpielerIndex != 0) + { + NaechsterSpielerId = Spieler[aktuellerSpielerIndex - 1].SpielerModel.Id; + } + else + { + NaechsterSpielerId = Spieler.LastOrDefault().SpielerModel.Id; + } + } + } #region Stapel Erstellen public static StapelModel ErstelleStandardKarten() @@ -163,8 +190,8 @@ namespace MiniGames.Client.ViewModel } return stapelModel; - } - + } + public void ZiehKartenStapelZusammenstellen() { var standardKarten = Uno.ErstelleStandardKarten(); diff --git a/BlazorSolution/MiniGamesTests/UnoTest.cs b/BlazorSolution/MiniGamesTests/UnoTest.cs index 0d42952..daa892d 100644 --- a/BlazorSolution/MiniGamesTests/UnoTest.cs +++ b/BlazorSolution/MiniGamesTests/UnoTest.cs @@ -122,6 +122,35 @@ namespace MiniGamesTests Assert.NotNull(ergebnis[2].KartenModels); } + [Theory] + [InlineData("Andrej", 1, "Paul", 2, "Erhard", 3, true, 2, 3)] + [InlineData("Sabine", 1, "Erich", 2, "Anna", 3, false, 3, 2)] + [InlineData("Thomas", 1, "Mike", 2, "Robin", 3, true, 2, 3)] + [InlineData("Andrej", 1, "Paul", 2, "Erhard", 3, true, 3, 1)] + [InlineData("Sabine", 1, "Erich", 2, "Anna", 3, false, 1, 3)] + private void NaechsterSpielerTest(string spielerEinsName, int spielerEinsId, string spielerZweiName, int spielerZweiId, string spielerDreiName, int spielerDreiId, bool uhrZeigerSinn, int aktuellerSpieler, int naechsterErwartung) + { + //arrange + var _spielerEinsName = spielerEinsName; + var _spielerEinsId = spielerEinsId; + var _spielerZweiName = spielerZweiName; + var _spielerZweiId = spielerZweiId; + var _spielerDreiName = spielerDreiName; + var _spielerDreiId = spielerDreiId; + var _uhrZeigerSinn = uhrZeigerSinn; + var _aktuellerSpieler = aktuellerSpieler; + var _naechsterErwartung = naechsterErwartung; + + //act + UnoRegeln.SpielerErstellen(_spielerEinsName); + UnoRegeln.SpielerErstellen(_spielerZweiName); + UnoRegeln.SpielerErstellen(_spielerDreiName); + UnoRegeln.SpielerWahl(_aktuellerSpieler, _uhrZeigerSinn); + + //assert + Assert.Equal(_naechsterErwartung, UnoRegeln.NaechsterSpielerId); + + } #endregion