You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.0 KiB
110 lines
3.0 KiB
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);
|
|
}
|
|
}
|
|
}
|