Browse Source

Spieler Erstellen Unittest

feature/uno
Dato88 3 years ago
parent
commit
982908be75
  1. 14
      BlazorSolution/MiniGames/Client/ViewModel/Uno.cs
  2. 495
      BlazorSolution/MiniGamesTests/UnoTest.cs

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

@ -1,5 +1,6 @@
using MiniGames.Shared.Enums; using MiniGames.Shared.Enums;
using MiniGames.Shared.Models; using MiniGames.Shared.Models;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -9,6 +10,7 @@ namespace MiniGames.Client.ViewModel
{ {
public StapelModel KartenAblageStapel { get; set; } = new(); public StapelModel KartenAblageStapel { get; set; } = new();
public StapelModel ZiehKartenStapel { get; set; } = new(); public StapelModel ZiehKartenStapel { get; set; } = new();
public List<HandKartenModel> Spieler { get; set; } = new();
public bool IstAblageStapelFarbeGleichZuLegendeKarte(string neueKarteFarbe) public bool IstAblageStapelFarbeGleichZuLegendeKarte(string neueKarteFarbe)
{ {
@ -64,9 +66,15 @@ namespace MiniGames.Client.ViewModel
} }
return _naechstenHand; return _naechstenHand;
}
}
public void SpielerErstellen(string spielerName)
{
string _spielerName = spielerName;
Spieler.Add(new HandKartenModel { Id = Spieler.Count() + 1, Name = _spielerName });
}
#region Stapel Erstellen #region Stapel Erstellen
public static StapelModel ErstelleStandardKarten() public static StapelModel ErstelleStandardKarten()
{ {

495
BlazorSolution/MiniGamesTests/UnoTest.cs

@ -6,246 +6,263 @@ using System.Linq;
using Xunit; using Xunit;
namespace MiniGamesTests namespace MiniGamesTests
{
public class UnoTest
{
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()
{
Id = 1,
Name = "Andrej",
KartenModels = new()
{
new KartenModel
{
Name = Kartenbezeichnung.PlusZweiKarte.ToString(),
Farbe = Farbe.Gelb.ToString(),
Spezial = true
}
}
};
return HandStapel;
}
private StapelModel BeispielStapelModelKarten(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 IstAblageStapelFarbeGleichZuLegendeKarteTest(Farbe ablegeStapelKarteFarbe, Farbe neueKarteFarbe, bool erwartet)
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
var _ablegeStabelKarteFarbe = ablegeStapelKarteFarbe.ToString();
var _neueKarteFarbe = neueKarteFarbe.ToString();
var _erwartet = erwartet;
UnoRegeln.KartenAblageStapel.KartenModels = new();
UnoRegeln.KartenAblageStapel.KartenModels.Add(BeispielKarte("Testkarten Name", _ablegeStabelKarteFarbe, false));
//act
var erhalten = UnoRegeln.IstAblageStapelFarbeGleichZuLegendeKarte(_neueKarteFarbe);
//assert
Assert.Equal(_erwartet, erhalten);
}
[Fact]
private void ZiehEineKarteTest()
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
List<KartenModel> KartenListe = new();
var beispielHand = BeispielHand();
var erwartet = UnoRegeln.ZiehKartenStapel.KartenModels.FirstOrDefault();
//act
KartenListe = UnoRegeln.ZiehEineKarte(beispielHand.KartenModels);
var erhalten = KartenListe.LastOrDefault();
//assert
Assert.Equal(erwartet, erhalten);
}
[Theory]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gelb, true)]
private void PlusZweiKarteAufStapelLegenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial)
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
var kartenAblageStapel = UnoRegeln.KartenAblageStapel;
var ziehKartenStapel = UnoRegeln.ZiehKartenStapel;
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var naechstenHand = BeispielHand();
var beispielZuLegendeKarte = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
naechstenHand.KartenModels = UnoRegeln.KarteAufStapelLegen(naechstenHand.KartenModels, beispielZuLegendeKarte);
//assert
}
{
public class UnoTest
{
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()
{
Id = 1,
Name = "Andrej",
KartenModels = new()
{
new KartenModel
{
Name = Kartenbezeichnung.PlusZweiKarte.ToString(),
Farbe = Farbe.Gelb.ToString(),
Spezial = true
}
}
};
return HandStapel;
}
private StapelModel BeispielStapelModelKarten(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;
}
#region UserManagement
[Theory]
[InlineData("Andrej")]
private void SpielerErstellenTest(string spielerName)
{
//arrange
var _spielerName = spielerName;
//act
UnoRegeln.SpielerErstellen(_spielerName);
var ergebnis = UnoRegeln.Spieler;
//assert
Assert.Equal(spielerName, ergebnis[0].Name);
}
#endregion
[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 IstAblageStapelFarbeGleichZuLegendeKarteTest(Farbe ablegeStapelKarteFarbe, Farbe neueKarteFarbe, bool erwartet)
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
var _ablegeStabelKarteFarbe = ablegeStapelKarteFarbe.ToString();
var _neueKarteFarbe = neueKarteFarbe.ToString();
var _erwartet = erwartet;
UnoRegeln.KartenAblageStapel.KartenModels = new();
UnoRegeln.KartenAblageStapel.KartenModels.Add(BeispielKarte("Testkarten Name", _ablegeStabelKarteFarbe, false));
//act
var erhalten = UnoRegeln.IstAblageStapelFarbeGleichZuLegendeKarte(_neueKarteFarbe);
//assert
Assert.Equal(_erwartet, erhalten);
}
[Fact]
private void ZiehEineKarteTest()
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
List<KartenModel> KartenListe = new();
var beispielHand = BeispielHand();
var erwartet = UnoRegeln.ZiehKartenStapel.KartenModels.FirstOrDefault();
//act
KartenListe = UnoRegeln.ZiehEineKarte(beispielHand.KartenModels);
var erhalten = KartenListe.LastOrDefault();
//assert
Assert.Equal(erwartet, erhalten);
}
[Theory]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gelb, true)]
private void PlusZweiKarteAufStapelLegenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial)
{
//arrange
UnoRegeln.ZiehKartenStapelZusammenstellen();
var kartenAblageStapel = UnoRegeln.KartenAblageStapel;
var ziehKartenStapel = UnoRegeln.ZiehKartenStapel;
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var naechstenHand = BeispielHand();
var beispielZuLegendeKarte = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
naechstenHand.KartenModels = UnoRegeln.KarteAufStapelLegen(naechstenHand.KartenModels, beispielZuLegendeKarte);
//assert
}
#region Stapel erstellen #region Stapel erstellen
[Theory]
[InlineData((Kartenbezeichnung)2, Farbe.Gelb, false, 19)]
[InlineData((Kartenbezeichnung)7, Farbe.Blau, false, 19)]
[InlineData((Kartenbezeichnung)9, Farbe.Gruen, false, 19)]
[InlineData((Kartenbezeichnung)4, Farbe.Rot, false, 19)]
[InlineData((Kartenbezeichnung)5, Farbe.Blau, false, 19)]
[InlineData((Kartenbezeichnung)9, Farbe.Gelb, false, 19)]
[InlineData((Kartenbezeichnung)6, Farbe.Gruen, false, 19)]
private void ErstelleStandardKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var _anzahl = anzahl;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleStandardKarten();
var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count();
var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count();
var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count();
var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count();
//assert
Assert.Equal(_anzahl, anzahlBlau);
Assert.Equal(_anzahl, anzahlRot);
Assert.Equal(_anzahl, anzahlGruen);
Assert.Equal(_anzahl, anzahlGelb);
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
[Theory]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gelb, true, 6)]
[InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Rot, true, 6)]
[InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gelb, true, 6)]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Blau, true, 6)]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gruen, true, 6)]
[InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Gelb, true, 6)]
[InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gruen, true, 6)]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Rot, true, 6)]
private void ErstelleFarbigeSpezialKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var _anzahl = anzahl;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleFarbigeSpezialKarten();
var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count();
var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count();
var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count();
var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count();
//assert
Assert.Equal(_anzahl, anzahlBlau);
Assert.Equal(_anzahl, anzahlRot);
Assert.Equal(_anzahl, anzahlGruen);
Assert.Equal(_anzahl, anzahlGelb);
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
[Theory]
[InlineData(Kartenbezeichnung.FarbwahlKarte, Farbe.Keine, true, 4)]
[InlineData(Kartenbezeichnung.ZiehVierFarbenwahlkarte, Farbe.Keine, true, 4)]
private void ErstelleJokerKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var _anzahl = anzahl;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleJokerKarten();
var ergebnisAnzahl = neuesDeck.KartenModels.Where(x => x.Name.Equals(kartenbezeichnung.ToString())).Count();
//assert
Assert.Equal(_anzahl, ergebnisAnzahl);
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
[Fact]
private void AblagestapelZusammenstellenTest()
{
UnoRegeln.ZiehKartenStapelZusammenstellen();
var ergebnis = UnoRegeln.ZiehKartenStapel;
Assert.Equal(108, ergebnis.KartenModels.Count());
}
[Theory]
[InlineData((Kartenbezeichnung)2, Farbe.Gelb, false, 19)]
[InlineData((Kartenbezeichnung)7, Farbe.Blau, false, 19)]
[InlineData((Kartenbezeichnung)9, Farbe.Gruen, false, 19)]
[InlineData((Kartenbezeichnung)4, Farbe.Rot, false, 19)]
[InlineData((Kartenbezeichnung)5, Farbe.Blau, false, 19)]
[InlineData((Kartenbezeichnung)9, Farbe.Gelb, false, 19)]
[InlineData((Kartenbezeichnung)6, Farbe.Gruen, false, 19)]
private void ErstelleStandardKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var _anzahl = anzahl;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleStandardKarten();
var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count();
var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count();
var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count();
var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count();
//assert
Assert.Equal(_anzahl, anzahlBlau);
Assert.Equal(_anzahl, anzahlRot);
Assert.Equal(_anzahl, anzahlGruen);
Assert.Equal(_anzahl, anzahlGelb);
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
[Theory]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gelb, true, 6)]
[InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Rot, true, 6)]
[InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gelb, true, 6)]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Blau, true, 6)]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gruen, true, 6)]
[InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Gelb, true, 6)]
[InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gruen, true, 6)]
[InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Rot, true, 6)]
private void ErstelleFarbigeSpezialKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var _anzahl = anzahl;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleFarbigeSpezialKarten();
var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count();
var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count();
var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count();
var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count();
//assert
Assert.Equal(_anzahl, anzahlBlau);
Assert.Equal(_anzahl, anzahlRot);
Assert.Equal(_anzahl, anzahlGruen);
Assert.Equal(_anzahl, anzahlGelb);
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
[Theory]
[InlineData(Kartenbezeichnung.FarbwahlKarte, Farbe.Keine, true, 4)]
[InlineData(Kartenbezeichnung.ZiehVierFarbenwahlkarte, Farbe.Keine, true, 4)]
private void ErstelleJokerKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var _anzahl = anzahl;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleJokerKarten();
var ergebnisAnzahl = neuesDeck.KartenModels.Where(x => x.Name.Equals(kartenbezeichnung.ToString())).Count();
//assert
Assert.Equal(_anzahl, ergebnisAnzahl);
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
[Fact]
private void AblagestapelZusammenstellenTest()
{
UnoRegeln.ZiehKartenStapelZusammenstellen();
var ergebnis = UnoRegeln.ZiehKartenStapel;
Assert.Equal(108, ergebnis.KartenModels.Count());
}
#endregion #endregion
} }
} }
Loading…
Cancel
Save