eva_bead_1/tests/Persistance/LevelLoaderTests.cs
2024-10-23 22:11:14 +02:00

63 lines
2.0 KiB
C#

using Snake.Model;
using Snake.Persistance;
namespace Snake.Tests.Persistance;
public class LevelLoaderTests
{
[Fact]
public async 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);
await loader.ReadAllDataAsync();
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);
}
}