diff --git a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs index 14af88e..fa5d7cb 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs @@ -54,5 +54,30 @@ namespace MiniGames.Client.ViewModel return stapelModel; } + + public static StapelModel ErstelleFarbigeSpezialKarten(string kartenbezeichnung) + { + var _kartenbezeichnung = kartenbezeichnung; + + StapelModel stapelModel = new(); + stapelModel.KartenModels = new(); + for (int f = 1; f <= 4; f++) + { + for (int i = 0; i < 2; i++) + { + var kartenfarbe = (Farbe)f; + stapelModel.KartenModels.Add( + new KartenModel + { + Name = _kartenbezeichnung.ToString(), + Farbe = kartenfarbe.ToString(), + Spezial = true + } + ); + } + } + + return stapelModel; + } } } diff --git a/BlazorSolution/MiniGames/Shared/Enums/Enums.cs b/BlazorSolution/MiniGames/Shared/Enums/Enums.cs index 4752d48..0bf0ab0 100644 --- a/BlazorSolution/MiniGames/Shared/Enums/Enums.cs +++ b/BlazorSolution/MiniGames/Shared/Enums/Enums.cs @@ -18,11 +18,11 @@ namespace MiniGames.Shared.Enums Sieben = 7, Acht = 8, Neun = 9, - PlusZweiKarte, - RetoureKarte, - AussetzenKarte, - FarbwahlKarte, - ZiehVierFarbenwahlkarte + PlusZweiKarte = 10, + RetoureKarte = 11, + AussetzenKarte = 12, + FarbwahlKarte = 13, + ZiehVierFarbenwahlkarte = 14 } [Flags] diff --git a/BlazorSolution/MiniGamesTests/UnoTest.cs b/BlazorSolution/MiniGamesTests/UnoTest.cs index f0617df..9732f0b 100644 --- a/BlazorSolution/MiniGamesTests/UnoTest.cs +++ b/BlazorSolution/MiniGamesTests/UnoTest.cs @@ -143,7 +143,6 @@ namespace MiniGamesTests var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count(); //assert - Assert.Equal(9, anzahlBlau); Assert.Equal(9, anzahlRot); Assert.Equal(9, anzahlGruen); @@ -154,7 +153,44 @@ namespace MiniGamesTests n.Farbe.Equals(erwartet.Farbe) && n.Spezial == erwartet.Spezial ); + } + [Theory] + [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gelb, true)] + [InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Rot, true)] + [InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gelb, true)] + [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Blau, true)] + [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gruen, true)] + [InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Gelb, true)] + [InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gruen, true)] + [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Rot, true)] + private void ErstelleFarbigeSpezialKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial) + { + //arrange + var _kartenbezeichnung = kartenbezeichnung.ToString(); + var _farbe = farbe.ToString(); + var _spezial = spezial; + var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial); + + //act + var neuesDeck = Uno.ErstelleFarbigeSpezialKarten(_kartenbezeichnung.ToString()); + var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count(); + var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count(); + var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count(); + var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count(); + + + //assert + Assert.Equal(2, anzahlBlau); + Assert.Equal(2, anzahlRot); + Assert.Equal(2, anzahlGruen); + Assert.Equal(2, anzahlGelb); + + Assert.Contains(neuesDeck.KartenModels, n => + n.Name.Equals(erwartet.Name) && + n.Farbe.Equals(erwartet.Farbe) && + n.Spezial == erwartet.Spezial + ); } } }