using QwirkleClassLibrary.Boards; using QwirkleClassLibrary.Events; using QwirkleClassLibrary.Games; using QwirkleClassLibrary.Players; using QwirkleClassLibrary.Tiles; using System.Runtime.CompilerServices; namespace TestBase; public class TestGame { [Theory] [InlineData(true, false, "testt")] [InlineData(false, false, "testt")] [InlineData(false, true, "testt")] public void Test_GameAddPlayerIngame(bool result, bool gamestate, string p) { Game game = new Game(); if (!result) { game.AddPlayerInGame(p); Assert.False(game.AddPlayerInGame(p)); } else { Assert.True(game.AddPlayerInGame(p)); } if (gamestate) { game.StartGame(); Assert.False(game.AddPlayerInGame(p)); } } [Theory] [InlineData(false, null)] [InlineData(true, "test")] public void Test_GameAddPlayerIngame2(bool result, string p) { Game game = new Game(); if (!result) { Assert.False(game.AddPlayerInGame(p)); } for (int i = 0; i < 4; i++) { string name = p + i; game.AddPlayerInGame(name); } Assert.False(game.AddPlayerInGame(p)); } [Theory] [InlineData("test")] public void Test_GameCreatePlayers(string p) { Game game = new Game(); Player player = new Player(p); Assert.Equal(game.CreatePlayer(p).NameTag, player.NameTag); } [Theory] [InlineData(true, "test1", "test2")] [InlineData(false, "test1", "test2")] public void Test_GameState(bool result, string p1, string p2) { Game game = new Game(); if (!result) { game.StartGame(); Assert.False(game.GameRunning); } game.AddPlayerInGame(p1); game.AddPlayerInGame(p2); game.StartGame(); Assert.True(game.GameRunning); } [Theory] [InlineData(true, "test1", "test2", "test3")] [InlineData(false, "test1", "test2", "test3")] public void Test_GameGetPlayingPlayerPosition(bool result, string p1, string p2, string p3) { Game game = new Game(); game.AddPlayerInGame(p1); game.AddPlayerInGame(p2); game.AddPlayerInGame(p3); if (!result) { Assert.Equal(-1, game.GetPlayingPlayerPosition()); return; } game.StartGame(); game.SetFirstPlayer(); Assert.Equal(0, game.GetPlayingPlayerPosition()); } [Theory] [InlineData(true)] [InlineData(false)] public void Test_GameGetPlaylingPlayer(bool result) { Game game = new Game(); game.AddPlayerInGame("patrick"); game.AddPlayerInGame("jean"); if (!result) { Assert.Throws(() => game.GetPlayingPlayer()); } game.StartGame(); game.SetFirstPlayer(); Assert.Equal(game.PlayerList[0], game.GetPlayingPlayer()); } [Fact] public void Test_BoardReturn() { Game game = new Game(); Assert.IsType(game.GetBoard()); } [Fact] public void Test_EmptyCell() { Game game = new Game(); Board b = game.GetBoard(); Cell? c = b.GetCell(1, 1); game.AddCellUsed(c); game.EmptyCellUsed(); Assert.Empty(game.CellsUsed); } [Fact] public void Test_TileOfPlayer() { Game game = new Game(); game.AddPlayerInGame("Test1"); game.AddPlayerInGame("Test2"); game.StartGame(); game.SetFirstPlayer(); game.GiveTilesToPlayers(); Assert.Equal(game.PlayerList[0].Tiles[0], game.TileOfPlayerWithPos(0)); } [Theory] [InlineData(true)] [InlineData(false)] public void Test_SetFirstPlayer(bool except) { Game game = new Game(); game.AddPlayerInGame("Test1"); game.AddPlayerInGame("Test2"); if (except) { game.StartGame(); Assert.IsType(game.SetFirstPlayer()); return; } Assert.Throws(() => game.SetFirstPlayer()); } [Theory] [InlineData(true)] [InlineData(false)] public void Test_Setnextplayer(bool except) { Game game = new Game(); game.AddPlayerInGame("Test1"); game.AddPlayerInGame("Test2"); if (except) { game.StartGame(); game.SetNextPlayer(); Assert.IsType(game.SetNextPlayer()); return; } game.StartGame(); Assert.Equal(game.SetNextPlayer(), game.SetFirstPlayer()); return; } [Theory] [InlineData(true)] [InlineData(false)] public void Test_PlaceTile(bool except) { Game game = new Game(); game.AddPlayerInGame("Test1"); game.AddPlayerInGame("Test2"); game.GiveTilesToPlayers(); if (except) { game.StartGame(); game.SetNextPlayer(); Assert.True(game.PlaceTile(game.GetPlayingPlayer(), game.PlayerList[game.GetPlayingPlayerPosition()].Tiles[0], 1, 1)); return; } game.StartGame(); game.SetNextPlayer(); Assert.False(game.PlaceTile(game.GetPlayingPlayer(), game.PlayerList[game.GetPlayingPlayerPosition()].Tiles[0], -5, 1)); return; } [Fact] public void Test_DrawTile() { Game game = new Game(); game.AddPlayerInGame("Test1"); game.AddPlayerInGame("Test2"); game.StartGame(); game.SetNextPlayer(); Assert.True(game.DrawTiles(game.GetPlayingPlayer())); return; } [Theory] [InlineData(true)] [InlineData(false)] public void Test_SwapTiles(bool except) { Game game = new Game(); game.AddPlayerInGame("Test1"); game.AddPlayerInGame("Test2"); game.StartGame(); game.SetNextPlayer(); List list = []; if (except) { game.DrawTiles(game.GetPlayingPlayer()); list.Add(game.GetPlayingPlayer().Tiles[1]); Assert.True(game.SwapTiles(game.GetPlayingPlayer(), list)); } Assert.False(game.SwapTiles(game.GetPlayingPlayer(), list)); return; } }