Browse Source

nummerierung für Farbe enums sowie test zum erstllen von farbigen karten mit nummerierungen

feature/uno
ADato88 3 years ago
parent
commit
4693de13bb
  1. 27
      BlazorSolution/MiniGames/Client/ViewModel/Uno.cs
  2. 7
      BlazorSolution/MiniGames/Shared/Enums/Enums.cs
  3. 2
      BlazorSolution/MiniGames/Shared/Models/StapelModel.cs
  4. 52
      BlazorSolution/MiniGamesTests/UnoTest.cs

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

@ -1,4 +1,5 @@
using MiniGames.Shared.Models;
using MiniGames.Shared.Enums;
using MiniGames.Shared.Models;
using System;
using System.Linq;
@ -29,5 +30,29 @@ namespace MiniGames.Client.ViewModel
return _handStapel;
}
public static StapelModel ErstelleStandardKarten()
{
StapelModel stapelModel = new();
stapelModel.KartenModels = new();
for (int f = 1; f <= 4; f++)
{
for (int k = 1; k <= 9; k++)
{
var kartenbezeichnung = (Kartenbezeichnung)k;
var kartenfarbe = (Farbe)f;
stapelModel.KartenModels.Add(
new KartenModel
{
Name = kartenbezeichnung.ToString(),
Farbe = kartenfarbe.ToString(),
Spezial = false
}
);
}
}
return stapelModel;
}
}
}

7
BlazorSolution/MiniGames/Shared/Enums/Enums.cs

@ -25,8 +25,13 @@ namespace MiniGames.Shared.Enums
ZiehVierFarbenwahlkarte
}
[Flags]
public enum Farbe
{
Blau, Rot, Gruen, Gelb, Keine
Keine = 0,
Blau = 1,
Rot = 2,
Gruen = 3,
Gelb = 4
}
}

2
BlazorSolution/MiniGames/Shared/Models/StapelModel.cs

@ -8,6 +8,6 @@ namespace MiniGames.Shared.Models
{
public class StapelModel
{
public List<KartenModel> KartenModels { get; set;}
public List<KartenModel> KartenModels { get; set; }
}
}

52
BlazorSolution/MiniGamesTests/UnoTest.cs

@ -15,6 +15,22 @@ namespace MiniGamesTests
{
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()
@ -39,7 +55,7 @@ namespace MiniGamesTests
{
var _name = name;
var _farbe = farbe;
var _spezial = spezial;
var _spezial = spezial;
StapelModel TestStapel = new();
TestStapel.KartenModels = new()
@ -82,15 +98,15 @@ namespace MiniGamesTests
[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)
private void ZiehEineKarteTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial)
{
//arrange
var _SpezialName = spezialName.ToString();
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
StapelModel zuFüllend = new();
var beispielStapel = BeispielZiehKarten(_SpezialName, _farbe, _spezial);
var beispielStapel = BeispielZiehKarten(_kartenbezeichnung, _farbe, _spezial);
var beispielHand = BeispielHand();
//act
@ -102,5 +118,33 @@ namespace MiniGamesTests
//assert
Assert.Equal(erwartet, erhalten);
}
[Theory]
[InlineData((Kartenbezeichnung)2, Farbe.Gelb, false)]
[InlineData((Kartenbezeichnung)7, Farbe.Blau, false)]
[InlineData((Kartenbezeichnung)9, Farbe.Gruen, false)]
[InlineData((Kartenbezeichnung)4, Farbe.Rot, false)]
[InlineData((Kartenbezeichnung)5, Farbe.Blau, false)]
[InlineData((Kartenbezeichnung)9, Farbe.Gelb, false)]
[InlineData((Kartenbezeichnung)6, Farbe.Gruen, false)]
private void ErstelleStandardKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial)
{
//arrange
var _kartenbezeichnung = kartenbezeichnung.ToString();
var _farbe = farbe.ToString();
var _spezial = spezial;
var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
//act
var neuesDeck = Uno.ErstelleStandardKarten();
//assert
Assert.Contains(neuesDeck.KartenModels, n =>
n.Name.Equals(erwartet.Name) &&
n.Farbe.Equals(erwartet.Farbe) &&
n.Spezial == erwartet.Spezial
);
}
}
}
Loading…
Cancel
Save