diff --git a/tests/GlobalUsings.cs b/tests/GlobalUsings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/tests/GlobalUsings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/tests/Persistance/LevelLoaderTests.cs b/tests/Persistance/LevelLoaderTests.cs new file mode 100644 index 0000000..43e41a4 --- /dev/null +++ b/tests/Persistance/LevelLoaderTests.cs @@ -0,0 +1,54 @@ +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] + ] + }, + { + "level_name": "Cool snake map", + "size": 12, + "snake_start_length": 3, + "obstacles": [ + [2,3], + [1,2] + ] + } + ] + """; + 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]]); + + 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]]); + } +} \ No newline at end of file diff --git a/tests/tests.csproj b/tests/tests.csproj new file mode 100644 index 0000000..c786adc --- /dev/null +++ b/tests/tests.csproj @@ -0,0 +1,30 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + +