Continous Integration in der Praxis Gruppenarbeit
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.
 
 
 
 

325 lines
8.6 KiB

using MiniGames.Shared.Models;
using Xunit;
namespace MiniGamesTests
{
public class TicTacToeBrettTest
{
const int LEER = TicTacToeBrett.LEER;
public TicTacToeBrett TestBrett(
int f00 = LEER, int f10 = LEER, int f20 = LEER,
int f01 = LEER, int f11 = LEER, int f21 = LEER,
int f02 = LEER, int f12 = LEER, int f22 = LEER
)
{
return new(
new int[,]
{
{ f00, f01, f02, },
{ f10, f11, f12, },
{ f20, f21, f22, },
}
);
}
[Theory]
[InlineData(4, 0,
LEER, LEER, LEER,
LEER, 0
)]
[InlineData(0, 1,
1
)]
[InlineData(8, 2,
LEER, LEER, LEER,
LEER, LEER, LEER,
LEER, LEER, 2
)]
[InlineData(6, 3,
LEER, LEER, LEER,
LEER, LEER, LEER,
3, LEER, LEER
)]
[InlineData(3, 4,
LEER, LEER, LEER,
4, LEER, LEER,
LEER, LEER, LEER
)]
public void Set_FreiesFeldBelegenTest(int pos, int wert,
int a = LEER, int b = LEER, int c = LEER,
int d = LEER, int e = LEER, int f = LEER,
int g = LEER, int h = LEER, int i = LEER
)
{
// arrange
TicTacToeBrett brett = new();
TicTacToeBrett erwartetesBrett = TestBrett(a, b, c, d, e, f, g, h, i);
bool erwartetGesetzt = true;
// act
bool erhaltenGesetzt = brett.Set(pos, wert);
// assert
Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
Assert.True(brett.Gleich(erwartetesBrett));
}
[Fact]
public void Set_BelegtesFeldBelegenTest()
{
// arrange
TicTacToeBrett brett = TestBrett(1);
TicTacToeBrett erwartetesBrett = TestBrett(1);
int pos = 0;
int wert = 1;
bool erwartetGesetzt = false;
// act
bool erhaltenGesetzt = brett.Set(pos, wert);
// assert
Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
Assert.True(brett.Gleich(erwartetesBrett));
}
[Theory]
[InlineData(-1)]
[InlineData(9)]
public void Set_OutOfBoundsTest(int pos)
{
// arrange
TicTacToeBrett brett = new();
TicTacToeBrett erwartetesBrett = new();
int wert = 0;
bool erwartetGesetzt = false;
// act
bool erhaltenGesetzt = brett.Set(pos, wert);
// assert
Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
Assert.True(brett.Gleich(erwartetesBrett));
}
[Fact]
public void Gleich_LeereBretterGleichTest()
{
// arrange
TicTacToeBrett b1 = new();
TicTacToeBrett b2 = new();
bool erwartetGleich = true;
// act
bool erhaltenGleich = b1.Gleich(b2);
// assert
Assert.Equal(erwartetGleich, erhaltenGleich);
}
[Fact]
public void Gleich_NichtLeereBretterGleichTest()
{
// arrange
TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
bool erwartetGleich = true;
// act
bool erhaltenGleich = b1.Gleich(b2);
// assert
Assert.Equal(erwartetGleich, erhaltenGleich);
}
[Fact]
public void Gleich_ErsteUngleichTest()
{
// arrange
TicTacToeBrett b1 = TestBrett(1);
TicTacToeBrett b2 = TestBrett(2);
bool erwartetGleich = false;
// act
bool erhaltenGleich = b1.Gleich(b2);
// assert
Assert.Equal(erwartetGleich, erhaltenGleich);
}
[Fact]
public void Gleich_LetzteUngleichTest()
{
// arrange
TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 10);
bool erwartetGleich = false;
// act
bool erhaltenGleich = b1.Gleich(b2);
// assert
Assert.Equal(erwartetGleich, erhaltenGleich);
}
[Fact]
public void Voll_LeeresBrettTest()
{
// arrange
TicTacToeBrett brett = TestBrett();
bool erwartetVoll = false;
// act
bool erhaltenVoll = brett.Voll();
// assert
Assert.Equal(erwartetVoll, erhaltenVoll);
}
[Fact]
public void Voll_VollesBrettTest()
{
// arrange
TicTacToeBrett brett = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
bool erwartetVoll = true;
// act
bool erhaltenVoll = brett.Voll();
// assert
Assert.Equal(erwartetVoll, erhaltenVoll);
}
[Fact]
public void Voll_FastVollesBrettTest()
{
// arrange
TicTacToeBrett brett = TestBrett(1, 2, 3, 4, 5, 6, 7, 8);
bool erwartetVoll = false;
// act
bool erhaltenVoll = brett.Voll();
// assert
Assert.Equal(erwartetVoll, erhaltenVoll);
}
[Fact]
public void Gewinner_LeeresFeldTest()
{
// arrange
TicTacToeBrett brett = TestBrett();
int erwarteterGewinner = LEER;
// act
int erhaltenerGewinner = brett.Gewinner();
// assert
Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
}
[Theory]
// Vertikale Reihe 1
[InlineData(0,
0, LEER, LEER,
0, LEER, LEER,
0, LEER, LEER
)]
// Vertikale Reihe 2
[InlineData(1,
LEER, 1, LEER,
LEER, 1, LEER,
LEER, 1, LEER
)]
// Vertikale Reihe 3
[InlineData(2,
LEER, LEER, 2,
LEER, LEER, 2,
LEER, LEER, 2
)]
// Horizontale Reihe 1
[InlineData(3,
3, 3, 3,
LEER, LEER, LEER,
LEER, LEER, LEER
)]
// Horizontale Reihe 2
[InlineData(4,
LEER, LEER, LEER,
4, 4, 4,
LEER, LEER, LEER
)]
// Horizontale Reihe 3
[InlineData(5,
LEER, LEER, LEER,
LEER, LEER, LEER,
5, 5, 5
)]
// Diagonale Reihe links oben nach rechts unten
[InlineData(6,
6, LEER, LEER,
LEER, 6, LEER,
LEER, LEER, 6
)]
// Diagonale Reihe rechts oben nach links unten
[InlineData(7,
LEER, LEER, 7,
LEER, 7, LEER,
7, LEER, LEER
)]
public void Gewinner_VolleReihenTest(int gewinner,
int a = LEER, int b = LEER, int c = LEER,
int d = LEER, int e = LEER, int f = LEER,
int g = LEER, int h = LEER, int i = LEER
)
{
// arrange
TicTacToeBrett brett = TestBrett(a, b, c, d, e, f, g, h, i);
int erwarteterGewinner = gewinner;
// act
int erhaltenerGewinner = brett.Gewinner();
// assert
Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
}
[Theory]
[InlineData(
0, LEER, 0,
LEER, LEER, LEER,
0, LEER, 0
)]
[InlineData(
1, 1, LEER,
1, 1, LEER,
LEER, LEER, LEER
)]
[InlineData(
2, 2, LEER,
LEER, LEER, 2,
LEER, 2, 2
)]
[InlineData(
1, 1, 2,
1, 3, 3,
2, 2, 3
)]
public void Gewinner_NichtVolleReihenTest(
int a = LEER, int b = LEER, int c = LEER,
int d = LEER, int e = LEER, int f = LEER,
int g = LEER, int h = LEER, int i = LEER
)
{
// arrange
TicTacToeBrett brett = TestBrett(a, b, c, d, e, f, g, h, i);
int erwarteterGewinner = LEER;
// act
int erhaltenerGewinner = brett.Gewinner();
// assert
Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
}
}
}