From 4693de13bb243d954637edb1a13bae7d13d39892 Mon Sep 17 00:00:00 2001 From: ADato88 Date: Wed, 26 Jan 2022 11:00:47 +0100 Subject: [PATCH] =?UTF-8?q?nummerierung=20f=C3=BCr=20Farbe=20enums=20sowie?= =?UTF-8?q?=20test=20zum=20erstllen=20von=20farbigen=20karten=20mit=20numm?= =?UTF-8?q?erierungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Client/ViewModel/Uno.cs | 27 +++++++++- .../MiniGames/Shared/Enums/Enums.cs | 7 ++- .../MiniGames/Shared/Models/StapelModel.cs | 2 +- BlazorSolution/MiniGamesTests/UnoTest.cs | 52 +++++++++++++++++-- 4 files changed, 81 insertions(+), 7 deletions(-) diff --git a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs index f45e058..14af88e 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/Uno.cs @@ -1,4 +1,5 @@ -using MiniGames.Shared.Models; +using MiniGames.Shared.Enums; +using MiniGames.Shared.Models; using System; using System.Linq; @@ -29,5 +30,29 @@ namespace MiniGames.Client.ViewModel return _handStapel; } + + public static StapelModel ErstelleStandardKarten() + { + StapelModel stapelModel = new(); + stapelModel.KartenModels = new(); + for (int f = 1; f <= 4; f++) + { + for (int k = 1; k <= 9; k++) + { + var kartenbezeichnung = (Kartenbezeichnung)k; + var kartenfarbe = (Farbe)f; + stapelModel.KartenModels.Add( + new KartenModel + { + Name = kartenbezeichnung.ToString(), + Farbe = kartenfarbe.ToString(), + Spezial = false + } + ); + } + } + + return stapelModel; + } } } diff --git a/BlazorSolution/MiniGames/Shared/Enums/Enums.cs b/BlazorSolution/MiniGames/Shared/Enums/Enums.cs index 8066649..4752d48 100644 --- a/BlazorSolution/MiniGames/Shared/Enums/Enums.cs +++ b/BlazorSolution/MiniGames/Shared/Enums/Enums.cs @@ -25,8 +25,13 @@ namespace MiniGames.Shared.Enums ZiehVierFarbenwahlkarte } + [Flags] public enum Farbe { - Blau, Rot, Gruen, Gelb, Keine + Keine = 0, + Blau = 1, + Rot = 2, + Gruen = 3, + Gelb = 4 } } diff --git a/BlazorSolution/MiniGames/Shared/Models/StapelModel.cs b/BlazorSolution/MiniGames/Shared/Models/StapelModel.cs index b700c1e..ff8560e 100644 --- a/BlazorSolution/MiniGames/Shared/Models/StapelModel.cs +++ b/BlazorSolution/MiniGames/Shared/Models/StapelModel.cs @@ -8,6 +8,6 @@ namespace MiniGames.Shared.Models { public class StapelModel { - public List KartenModels { get; set;} + public List KartenModels { get; set; } } } diff --git a/BlazorSolution/MiniGamesTests/UnoTest.cs b/BlazorSolution/MiniGamesTests/UnoTest.cs index 9da3ae5..8f377df 100644 --- a/BlazorSolution/MiniGamesTests/UnoTest.cs +++ b/BlazorSolution/MiniGamesTests/UnoTest.cs @@ -15,6 +15,22 @@ namespace MiniGamesTests { public Uno UnoRegeln = new(); + private KartenModel BeispielKarte(string name, string farbe, bool spezial) + { + var _name = name; + var _farbe = farbe; + var _spezial = spezial; + + KartenModel kartenModel = new() + { + Name = _name, + Farbe = _farbe, + Spezial = _spezial + }; + + return kartenModel; + } + private HandKartenModel BeispielHand() { HandKartenModel HandStapel = new() @@ -39,7 +55,7 @@ namespace MiniGamesTests { var _name = name; var _farbe = farbe; - var _spezial = spezial; + var _spezial = spezial; StapelModel TestStapel = new(); TestStapel.KartenModels = new() @@ -82,15 +98,15 @@ namespace MiniGamesTests [InlineData((Kartenbezeichnung)3, Farbe.Blau, false)] [InlineData((Kartenbezeichnung)7, Farbe.Gruen, false)] [InlineData(Kartenbezeichnung.FarbwahlKarte, Farbe.Keine, false)] - private void ZiehEineKarteTest(Kartenbezeichnung spezialName, Farbe farbe, bool spezial) + private void ZiehEineKarteTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial) { //arrange - var _SpezialName = spezialName.ToString(); + var _kartenbezeichnung = kartenbezeichnung.ToString(); var _farbe = farbe.ToString(); var _spezial = spezial; StapelModel zuFüllend = new(); - var beispielStapel = BeispielZiehKarten(_SpezialName, _farbe, _spezial); + var beispielStapel = BeispielZiehKarten(_kartenbezeichnung, _farbe, _spezial); var beispielHand = BeispielHand(); //act @@ -102,5 +118,33 @@ namespace MiniGamesTests //assert Assert.Equal(erwartet, erhalten); } + + [Theory] + [InlineData((Kartenbezeichnung)2, Farbe.Gelb, false)] + [InlineData((Kartenbezeichnung)7, Farbe.Blau, false)] + [InlineData((Kartenbezeichnung)9, Farbe.Gruen, false)] + [InlineData((Kartenbezeichnung)4, Farbe.Rot, false)] + [InlineData((Kartenbezeichnung)5, Farbe.Blau, false)] + [InlineData((Kartenbezeichnung)9, Farbe.Gelb, false)] + [InlineData((Kartenbezeichnung)6, Farbe.Gruen, false)] + private void ErstelleStandardKartenTest(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.ErstelleStandardKarten(); + + //assert + Assert.Contains(neuesDeck.KartenModels, n => + n.Name.Equals(erwartet.Name) && + n.Farbe.Equals(erwartet.Farbe) && + n.Spezial == erwartet.Spezial + ); + + } } }