using MiniGames.Client.ViewModel; 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 = "2 Ziehen", Farbe = "Gelb", Spezial = true } } }; return HandStapel; } private StapelModel BeispielZiehKarten() { StapelModel TestStapel = new(); TestStapel.KartenModels = new() { new KartenModel { Name = "Retoure", Farbe = "Blau", Spezial = true }, new KartenModel { Name = "Retoure", Farbe = "Rot", Spezial = true }, new KartenModel { Name = "Retoure", Farbe = "Gruen", Spezial = true }, new KartenModel { Name = "Retoure", Farbe = "Gelb", Spezial = true }, }; return TestStapel; } [Theory] [InlineData("rot", "rot", true)] [InlineData("blau", "rot", false)] [InlineData("rot", "blau", false)] [InlineData("blau", "blau", true)] [InlineData("gelb", "rot", false)] [InlineData("gruen", "gruen", true)] private void IstAblageStabelFarbeGleichHandTest(string ablegeStapelKarte, string neueKarte, bool erwartet) { //arrange var _ablegeStabelKarte = ablegeStapelKarte; var _neueKarte = neueKarte; var _erwartet = erwartet; //act var erhalten = UnoRegeln.IstAblageStabelFarbeGleichHand(_ablegeStabelKarte, _neueKarte); //assert Assert.Equal(_erwartet, erhalten); } [Fact] private void ZiehEineKarteTest() { //arrange StapelModel zuFüllend = new(); var beispielStapel = BeispielZiehKarten(); 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); } } }