using MiniGames.Shared.Models; using Xunit; namespace MiniGamesTests { public class TicTacToeBrettTest { public TicTacToeBrett TestBrett( int a = -1, int b = -1, int c = -1, int d = -1, int e = -1, int f = -1, int g = -1, int h = -1, int i = -1 ) { return new( new int[,] { { a, b, c, }, { d, e, f, }, { g, h, i, }, } ); } [Fact] public void Set_FreiesFeldBelegenTest() { // arrange TicTacToeBrett brett = new(); TicTacToeBrett erwartetesBrett = TestBrett(-1, -1, -1, -1, 0); int pos = 4; int wert = 0; 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); } } }