using MiniGames.Client.ViewModel; using MiniGames.Shared.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xunit; namespace MiniGamesTests { public class SchereSteinPapierEchseSpockTest { SchereSteinPapierEchseSpock Spiel = new(); SchereSteinPapierEchseSpockModel SpieleModel = new(); private const string stein = "Stein"; private const string schere = "Schere"; private const string papier = "Papier"; private const string echse = "Echse"; private const string spock = "Spock"; private const string gewonnen = "Gewonnen"; private const string verloren = "Verloren"; private const string unentschieden = "Unentschieden"; private void GetSampleModels() { SpieleModel.SpielerListe = new() { new SpielerModel { SpielerName = "Andrej", Punkte = 0 }, new SpielerModel { SpielerName = "CPU", Punkte = 0 } }; } [Theory] [InlineData(stein, stein, unentschieden)] [InlineData(stein, schere, gewonnen)] [InlineData(stein, papier, verloren)] [InlineData(stein, echse, gewonnen)] [InlineData(stein, spock, verloren)] public void IsStone(string hand, string gegner, string erwartet) { //arrange string spielerHand = hand; string gegnerHand = gegner; string erwartetesErg = erwartet; //act string getestetesErg = Spiel.SpielerStein(spielerHand, gegnerHand); //assert Assert.Equal(erwartetesErg, getestetesErg); } [Theory] [InlineData(schere, stein, verloren)] [InlineData(schere, schere, unentschieden)] [InlineData(schere, papier, gewonnen)] [InlineData(schere, echse, gewonnen)] [InlineData(schere, spock, verloren)] public void IsScissor(string hand, string gegner, string erwartet) { //arrange string spielerHand = hand; string gegnerHand = gegner; string erwartetesErg = erwartet; //act string getestetesErg = Spiel.SpielerSchere(spielerHand, gegnerHand); //assert Assert.Equal(erwartetesErg, getestetesErg); } [Theory] [InlineData(papier, stein, gewonnen)] [InlineData(papier, schere, verloren)] [InlineData(papier, papier, unentschieden)] [InlineData(papier, echse, verloren)] [InlineData(papier, spock, gewonnen)] public void IsPaper(string hand, string gegner, string erwartet) { //arrange string spielerHand = hand; string gegnerHand = gegner; string erwartetesErg = erwartet; //act string getestetesErg = Spiel.SpielerPapier(spielerHand, gegnerHand); //assert Assert.Equal(erwartetesErg, getestetesErg); } [Theory] [InlineData(echse, stein, verloren)] [InlineData(echse, schere, verloren)] [InlineData(echse, papier, gewonnen)] [InlineData(echse, echse, unentschieden)] [InlineData(echse, spock, gewonnen)] public void IsLizard(string hand, string gegner, string erwartet) { //arrange string spielerHand = hand; string gegnerHand = gegner; string erwartetesErg = erwartet; //act string getestetesErg = Spiel.SpielerEchse(spielerHand, gegnerHand); //assert Assert.Equal(erwartetesErg, getestetesErg); } [Theory] [InlineData(spock, stein, gewonnen)] [InlineData(spock, schere, gewonnen)] [InlineData(spock, papier, verloren)] [InlineData(spock, echse, verloren)] [InlineData(spock, spock, unentschieden)] public void IsSpock(string hand, string gegner, string erwartet) { //arrange string spielerHand = hand; string gegnerHand = gegner; string erwartetesErg = erwartet; //act string getestetesErg = Spiel.SpielerSpock(spielerHand, gegnerHand); //assert Assert.Equal(erwartetesErg, getestetesErg); } [Theory] [InlineData(0, stein)] [InlineData(1, schere)] [InlineData(2, papier)] [InlineData(3, echse)] [InlineData(4, spock)] public void PChand(int index, string erwartet) { //arrange int _index = index; string _erwartet = erwartet; //act string erg = Spiel.CPUHand(_index); //assert Assert.Equal(_erwartet, erg); } [Theory] [InlineData(0, 1, gewonnen)] [InlineData(0, 0, verloren)] [InlineData(1, 1, verloren)] [InlineData(1, 0, gewonnen)] public void ErgebnisBerechnungTest(int player, int punkte, string ergebnis) { GetSampleModels(); //arrange int _player = player; int _punkte = punkte; string _ergebnis = ergebnis; //act SchereSteinPapierEchseSpockModel endPunktzahl = SchereSteinPapierEchseSpock.PunkteBerechnung(SpieleModel, _ergebnis); //assert Assert.Equal(_punkte, endPunktzahl.SpielerListe[_player].Punkte); } } }