diff --git a/Qwirkle/TestBase/TestPersistence.cs b/Qwirkle/TestBase/TestPersistence.cs index cb3c9d8..8894bf7 100644 --- a/Qwirkle/TestBase/TestPersistence.cs +++ b/Qwirkle/TestBase/TestPersistence.cs @@ -2,41 +2,78 @@ using Xunit; using QwirkleClassLibrary.Games; using QwirkleClassLibrary.Persistences; using System.IO; +using QwirkleClassLibrary.Players; namespace TestBase { public class TestPersistence { [Fact] - public void Test_SaveGame() - { - var game = new Game(); - - IGamePersistence gamePersistence = new GamePersistenceJson(); - gamePersistence.SaveGame(game); - - Assert.True(File.Exists("Game.json")); - } - - [Fact] - public void Test_LoadGame() - { - Directory.SetCurrentDirectory("./../../../../Files"); - - var game = new Game(); - - game.AddPlayerInGame(["Jules", "Jérémy"]); - game.StartGame(); - - IGamePersistence gamePersistence = new GamePersistenceJson(); - gamePersistence.SaveGame(game); - - var loadedGame = gamePersistence.LoadGame(); - - Assert.True(game.Board.ReadCells.All(cell => - cell.GetX == loadedGame.Board.GetCell(cell.GetX, cell.GetY)!.GetX && - cell.GetY == loadedGame.Board.GetCell(cell.GetX, cell.GetY)!.GetY && - cell.IsFree == loadedGame.Board.GetCell(cell.GetX, cell.GetY)!.IsFree)); - } + public void Test_SaveGame() + { + var game = new Game(); + + var gamePersistence = new GamePersistenceJson(); + gamePersistence.SaveGame(game); + + Assert.True(File.Exists("Game.json")); + } + + [Fact] + public void Test_LoadGame() + { + Directory.SetCurrentDirectory("./../../../../Files"); + + var game = new Game(); + + game.AddPlayerInGame(["Jules", "Jérémy"]); + game.StartGame(); + + var gamePersistence = new GamePersistenceJson(); + gamePersistence.SaveGame(game); + + var loadedGame = gamePersistence.LoadGame(); + + Assert.True(game.Board.ReadCells.All(cell => + cell.GetX == loadedGame.Board.GetCell(cell.GetX, cell.GetY)!.GetX && + cell.GetY == loadedGame.Board.GetCell(cell.GetX, cell.GetY)!.GetY && + cell.IsFree == loadedGame.Board.GetCell(cell.GetX, cell.GetY)!.IsFree)); + } + + [Fact] + public void Test_SaveLeaderboard() + { + var leaderboard = new Leaderboard(); + + var leaderboardPersistence = new LeaderboardPersistenceJson(); + leaderboardPersistence.SaveLeaderboard(leaderboard); + + Assert.True(File.Exists("Leaderboard.json")); + } + + [Fact] + public void Test_LoadLeaderboard() + { + var scoreboard = new Dictionary() + { + { new Player("Rémy"), 60 }, + { new Player("Jérémy"), 50 }, + { new Player("Jules"), 100 } + }; + + var scoreboardro = scoreboard.AsReadOnly(); + + var leaderboard = new Leaderboard(); + leaderboard.AddScoreInLead(scoreboardro); + + var leaderboardPersistence = new LeaderboardPersistenceJson(); + leaderboardPersistence.SaveLeaderboard(leaderboard); + + var loadedLeaderboard = leaderboardPersistence.LoadLeaderboard(); + + Assert.Equal("Jules", loadedLeaderboard.Lb[0].PlayerName); + Assert.Equal(100, loadedLeaderboard.Lb[0].Points); + Assert.Equal(1, loadedLeaderboard.Lb[0].Victories); + } } } \ No newline at end of file