using Snake.Model; using Snake.Persistance; namespace Snake.Tests.Persistance; public class LevelLoaderTests { [Fact] public void LoadLevelTest() { // Preparre string SaveFile = """ [ { "level_name": "Test level", "size": 10, "snake_start_length": 5, "obstacles": [ [1,1], [4,2], [6,9] ], "new_egg_round": 2, "egg_limit": 5 }, { "level_name": "Cool snake map", "size": 12, "snake_start_length": 3, "obstacles": [ [2,3], [1,2] ], "new_egg_round": 3, "egg_limit": 6 } ] """; string tempfile = Path.GetTempFileName(); File.WriteAllText(tempfile, SaveFile); var loader = new SnakeLevelLoader(tempfile); Assert.Equal(2, loader.StoredLevels.Count); var current_level = loader.StoredLevels[0]; Assert.Equal("Test level", current_level.LevelName); Assert.Equal(10, current_level.Size); Assert.Equal(5, current_level.SnakeStartLength); Assert.Equal(current_level.Obstacles, [[1,1], [4,2], [6,9]]); Assert.Equal(2, current_level.NewEggRound); Assert.Equal(5, current_level.EggLimit); current_level = loader.StoredLevels[1]; Assert.Equal("Cool snake map", current_level.LevelName); Assert.Equal(12, current_level.Size); Assert.Equal(3, current_level.SnakeStartLength); Assert.Equal(current_level.Obstacles, [[2,3], [1,2]]); Assert.Equal(3, current_level.NewEggRound); Assert.Equal(6, current_level.EggLimit); } }