using MiniGames.Client.ViewModel; using MiniGames.Shared.Enums; using MiniGames.Shared.Models; using Moq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xunit; namespace MiniGamesTests { public class UnoTest { public Uno UnoRegeln = new(); private HandKartenModel BeispielHand() { HandKartenModel HandStapel = new() { Id = 1, Name = "Andrej", KartenModels = new() { new KartenModel { Name = Kartenbezeichnung.PlusZweiKarte.ToString(), Farbe = Farbe.Gelb.ToString(), Spezial = true } } }; return HandStapel; } private StapelModel BeispielZiehKarten(string name, string farbe, bool spezial) { var _name = name; var _farbe = farbe; var _spezial = spezial; StapelModel TestStapel = new(); TestStapel.KartenModels = new() { new KartenModel { Name = _name, Farbe = _farbe, Spezial = _spezial }, }; return TestStapel; } [Theory] [InlineData(Farbe.Rot, Farbe.Rot, true)] [InlineData(Farbe.Blau, Farbe.Rot, false)] [InlineData(Farbe.Rot, Farbe.Blau, false)] [InlineData(Farbe.Blau, Farbe.Blau, true)] [InlineData(Farbe.Gelb, Farbe.Rot, false)] [InlineData(Farbe.Gruen, Farbe.Gruen, true)] private void IstAblageStabelFarbeGleichHandTest(Farbe ablegeStapelKarteFarbe, Farbe neueKarteFarbe, bool erwartet) { //arrange var _ablegeStabelKarteFarbe = ablegeStapelKarteFarbe.ToString(); var _neueKarteFarbe = neueKarteFarbe.ToString(); var _erwartet = erwartet; //act var erhalten = UnoRegeln.IstAblageStabelFarbeGleichHand(_ablegeStabelKarteFarbe, _neueKarteFarbe); //assert Assert.Equal(_erwartet, erhalten); } [Theory] [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Blau, true)] [InlineData((Kartenbezeichnung)1, Farbe.Gelb, false)] [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) { //arrange var _SpezialName = spezialName.ToString(); var _farbe = farbe.ToString(); var _spezial = spezial; StapelModel zuFüllend = new(); var beispielStapel = BeispielZiehKarten(_SpezialName, _farbe, _spezial); var beispielHand = BeispielHand(); //act zuFüllend.KartenModels = UnoRegeln.ZiehEineKarte(beispielHand, beispielStapel).KartenModels; var erwartet = beispielStapel.KartenModels.FirstOrDefault(); var erhalten = beispielHand.KartenModels.LastOrDefault(); //assert Assert.Equal(erwartet, erhalten); } } }