tests
This commit is contained in:
parent
b49da1e0de
commit
0d41087391
1
tests/GlobalUsings.cs
Normal file
1
tests/GlobalUsings.cs
Normal file
@ -0,0 +1 @@
|
|||||||
|
global using Xunit;
|
||||||
54
tests/Persistance/LevelLoaderTests.cs
Normal file
54
tests/Persistance/LevelLoaderTests.cs
Normal file
@ -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]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
tests/tests.csproj
Normal file
30
tests/tests.csproj
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
|
||||||
|
<IsPackable>false</IsPackable>
|
||||||
|
<IsTestProject>true</IsTestProject>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
|
||||||
|
<PackageReference Include="xunit" Version="2.4.2" />
|
||||||
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\persistance\persistance.csproj" />
|
||||||
|
<ProjectReference Include="..\model\model.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Loading…
Reference in New Issue
Block a user