Browse Source

neuer AussetzenKarteAufStapelLegenTest

feature/uno
ADato88 3 years ago
parent
commit
bed6ed4be9
  1. 38
      BlazorSolution/MiniGames/Client/ViewModel/Uno.cs
  2. 33
      BlazorSolution/MiniGamesTests/UnoTest.cs

38
BlazorSolution/MiniGames/Client/ViewModel/Uno.cs

@ -7,7 +7,7 @@ namespace MiniGames.Client.ViewModel
{
public class Uno : IUno
{
public StapelModel KartenAblageStapel { get; set; } = new();
public StapelModel AblageKartenStapel { get; set; } = new();
public StapelModel ZiehKartenStapel { get; set; } = new();
public List<HandKartenModel> Spieler { get; set; } = new();
public int NaechsterSpielerId { get; set; }
@ -17,7 +17,7 @@ namespace MiniGames.Client.ViewModel
{
bool ergebnis;
_ = KartenAblageStapel.KartenModels.LastOrDefault().Farbe.Equals(neueKarteFarbe) ? ergebnis = true : ergebnis = false;
_ = AblageKartenStapel.KartenModels.LastOrDefault().Farbe.Equals(neueKarteFarbe) ? ergebnis = true : ergebnis = false;
return ergebnis;
}
@ -26,7 +26,7 @@ namespace MiniGames.Client.ViewModel
{
bool ergebnis;
_ = KartenAblageStapel.KartenModels.LastOrDefault().Name.Equals(handStapelKarteBezeichnung) ? ergebnis = true : ergebnis = false;
_ = AblageKartenStapel.KartenModels.LastOrDefault().Name.Equals(handStapelKarteBezeichnung) ? ergebnis = true : ergebnis = false;
return ergebnis;
}
@ -51,9 +51,9 @@ namespace MiniGames.Client.ViewModel
const string _retoureKarte = "RetoureKarte";
const string _aussetzenKarte = "AussetzenKarte";
if (KartenAblageStapel.KartenModels is null)
if (AblageKartenStapel.KartenModels is null)
{
KartenAblageStapel.KartenModels = new();
AblageKartenStapel.KartenModels = new();
}
switch (zuLegendeKarte.Name)
@ -70,6 +70,7 @@ namespace MiniGames.Client.ViewModel
break;
case _aussetzenKarte:
AussetzenKarteSpielerWahl(id, Uhrzeigersinn);
break;
default:
@ -128,6 +129,33 @@ namespace MiniGames.Client.ViewModel
}
}
public void AussetzenKarteSpielerWahl(int aktuellerSpielerId, bool uhrZeigerSinn)
{
var aktuellerSpielerIndex = Spieler.FindIndex(x => x.SpielerModel.Id == aktuellerSpielerId);
if (uhrZeigerSinn)
{
if (aktuellerSpielerIndex == Spieler.Count() - 1)
{
NaechsterSpielerId = 2;
}
else
{
NaechsterSpielerId = Spieler[aktuellerSpielerIndex + 2].SpielerModel.Id;
}
}
else
{
if (aktuellerSpielerIndex != 0)
{
NaechsterSpielerId = Spieler[aktuellerSpielerIndex - 2].SpielerModel.Id;
}
else
{
NaechsterSpielerId = Spieler[Spieler.Count() - 2].SpielerModel.Id;
}
}
}
#region Stapel Erstellen
public static StapelModel ErstelleStandardKarten()
{

33
BlazorSolution/MiniGamesTests/UnoTest.cs

@ -244,8 +244,8 @@ namespace MiniGamesTests
//act
UnoRegeln.KartenAblageStapel.KartenModels = new();
UnoRegeln.KartenAblageStapel.KartenModels.Add(
UnoRegeln.AblageKartenStapel.KartenModels = new();
UnoRegeln.AblageKartenStapel.KartenModels.Add(
BeispielKarte("Testkarten Name", _ablegeStabelKarteFarbe, false)
);
var erhalten = UnoRegeln.IstAblageStapelFarbeGleichZuLegendeKarte(_neueKarteFarbe);
@ -269,8 +269,8 @@ namespace MiniGamesTests
var _erwartet = erwartet;
//act
UnoRegeln.KartenAblageStapel.KartenModels = new();
UnoRegeln.KartenAblageStapel.KartenModels.Add(
UnoRegeln.AblageKartenStapel.KartenModels = new();
UnoRegeln.AblageKartenStapel.KartenModels.Add(
BeispielKarte(_ablegeStapelKarteBezeichnung, Farbe.Blau.ToString(), false)
);
var erhalten = UnoRegeln.IstAblageStapelZahlGleichZuLegendeKarte(_handStapelKarteBezeichnung);
@ -359,6 +359,31 @@ namespace MiniGamesTests
Assert.Equal(naechsterSpielerIndex, UnoRegeln.Spieler.FindIndex(x => x.SpielerModel.Id == UnoRegeln.NaechsterSpielerId));
}
[Theory]
[InlineData(4, 1, 3, true)]
private void AussetzenKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerIndex, int naechsterSpielerIndex, bool uhrzeigerSinn)
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
BeispielMultipleSpielerModelsFüllen(anzahlSpieler);
foreach (var spieler in SpielerModels)
{
UnoRegeln.SpielerErstellen(spieler.SpielerName);
}
var erwartetNaechsterSpielerIndex = naechsterSpielerIndex;
var _aktuellerSpielerIndex = aktuellerSpielerIndex;
var beispielZuLegendeKarte = BeispielKarte(Kartenbezeichnung.AussetzenKarte.ToString(), Farbe.Rot.ToString(), true);
UnoRegeln.Uhrzeigersinn = uhrzeigerSinn;
//act
UnoRegeln.KarteAufStapelLegen(UnoRegeln.Spieler[_aktuellerSpielerIndex].SpielerModel.Id, beispielZuLegendeKarte);
//assert
Assert.Equal(erwartetNaechsterSpielerIndex, UnoRegeln.Spieler.FindIndex(x => x.SpielerModel.Id == UnoRegeln.NaechsterSpielerId));
}
#region Stapel erstellen
[Theory]

Loading…
Cancel
Save