using MiniGames.Client.ViewModel; using MiniGames.Shared.Models; using Xunit; namespace MiniGamesTests { public class TicTacToeTest { TicTacToeBrett StandardBrett() { return new TicTacToeBrett(); } SpielerModel[] StandardSpieler() { return new SpielerModel[] { new SpielerModel { SpielerName = "Spieler 1", Punkte = 0 }, new SpielerModel { SpielerName = "Spieler 2", Punkte = 1 } }; } TicTacToeModel StandardModel() { return new TicTacToeModel { Spieler = StandardSpieler(), Brett = StandardBrett(), }; } TicTacToe StandardSpiel() { return new(StandardModel()); } [Theory] [InlineData(0, 1)] [InlineData(1, 0)] public void SpielerWechselTest(int vorher, int nachher) { // arrange TicTacToe spiel = StandardSpiel(); spiel.AktiverSpielerIndex = vorher; int erwarteterIndex = nachher; // act spiel.SpielerWechsel(); // assert Assert.Equal(erwarteterIndex, spiel.AktiverSpielerIndex); } [Fact] public void SpielerInput_ValidesInputTest() { // arrange TicTacToe spiel = StandardSpiel(); spiel.AktiverSpielerIndex = 0; int erwarteterSpielerIndex = 1; int pos = 2; TicTacToeBrett erwartetesBrett = new(new int[,] { { TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, }, { TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, }, { spiel.AktiverSpielerIndex, TicTacToeBrett.LEER, TicTacToeBrett.LEER, }, }); // act spiel.SpielerInput(pos); // assert Assert.True(spiel.Brett.Gleich(erwartetesBrett)); Assert.Equal(erwarteterSpielerIndex, spiel.AktiverSpielerIndex); } [Fact] public void SpielerInput_InvalidesInputTest() { // arrange TicTacToe spiel = StandardSpiel(); spiel.AktiverSpielerIndex = 0; int erwarteterSpielerIndex = 0; int pos = -1; TicTacToeBrett erwartetesBrett = StandardBrett(); // act spiel.SpielerInput(pos); // assert Assert.True(spiel.Brett.Gleich(erwartetesBrett)); Assert.Equal(erwarteterSpielerIndex, spiel.AktiverSpielerIndex); } [Fact] public void SpielerInput_GewinnerTest() { // arrange TicTacToe spiel = StandardSpiel(); spiel.AktiverSpielerIndex = 0; int erwarteterGewinnerIndex = 0; // act spiel.SpielerInput(0); spiel.SpielerInput(3); spiel.SpielerInput(1); spiel.SpielerInput(4); spiel.SpielerInput(2); // assert Assert.Equal(spiel.GewinnerIndex, erwarteterGewinnerIndex); } [Fact] public void SpielerInput_KeinGewinnerTest() { // arrange TicTacToe spiel = StandardSpiel(); spiel.AktiverSpielerIndex = 0; int erwarteterGewinnerIndex = -1; // act spiel.SpielerInput(0); spiel.SpielerInput(3); spiel.SpielerInput(1); spiel.SpielerInput(4); spiel.SpielerInput(5); spiel.SpielerInput(2); // assert Assert.Equal(spiel.GewinnerIndex, erwarteterGewinnerIndex); } } }