lots of staff
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
using Snake.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FluentAssertions;
|
||||
using Microsoft.Extensions.Time.Testing;
|
||||
|
||||
namespace tests.Model
|
||||
{
|
||||
public class SnakeLevelTest
|
||||
{
|
||||
FakeTimeProvider timeProvider = new FakeTimeProvider();
|
||||
SnakeLevel level;
|
||||
Point[] obstacles = [(3, 3), (4, 4)];
|
||||
public SnakeLevelTest()
|
||||
{
|
||||
level = new SnakeLevel(
|
||||
10, obstacles,
|
||||
5, 3, 2, timeProvider
|
||||
);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SnakeInitialValuesTests()
|
||||
{
|
||||
level.SnakeHeadDirection.Should().Be(SnakeLevel.SnakeDirection.Down);
|
||||
level.SnakeLength.Should().Be(5);
|
||||
level.EggLimit.Should().Be(2);
|
||||
level.NewEggRound.Should().Be(3);
|
||||
level.Size.Should().Be(10);
|
||||
level.State.Should().Be(SnakeLevel.GameState.Paused);
|
||||
foreach(Point p in obstacles)
|
||||
{
|
||||
level[p].Should().Be(SnakeLevel.LevelBlock.Obstacle);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SnakeOutOfBoundsTest()
|
||||
{
|
||||
bool game_state_changed_raised = false;
|
||||
level.GameStateUpdate += (s, e) =>
|
||||
{
|
||||
game_state_changed_raised = true;
|
||||
};
|
||||
|
||||
level.Start();
|
||||
|
||||
game_state_changed_raised.Should().Be(true);
|
||||
game_state_changed_raised = false;
|
||||
for(int i=0; i<5; i++)
|
||||
{
|
||||
timeProvider.Advance(SnakeLevel.TickTimeSpan);
|
||||
}
|
||||
|
||||
game_state_changed_raised.Should().Be(false);
|
||||
|
||||
timeProvider.Advance(SnakeLevel.TickTimeSpan);
|
||||
game_state_changed_raised.Should().Be(true);
|
||||
level.State.Should().Be(SnakeLevel.GameState.Dead);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ public class LevelLoaderTests
|
||||
public void LoadLevelTest()
|
||||
{
|
||||
// Preparre
|
||||
string SaveFile =
|
||||
string SaveFile =
|
||||
"""
|
||||
[
|
||||
{
|
||||
@@ -20,7 +20,9 @@ public class LevelLoaderTests
|
||||
[1,1],
|
||||
[4,2],
|
||||
[6,9]
|
||||
]
|
||||
],
|
||||
"new_egg_round": 2,
|
||||
"egg_limit": 5
|
||||
},
|
||||
{
|
||||
"level_name": "Cool snake map",
|
||||
@@ -29,7 +31,9 @@ public class LevelLoaderTests
|
||||
"obstacles": [
|
||||
[2,3],
|
||||
[1,2]
|
||||
]
|
||||
],
|
||||
"new_egg_round": 3,
|
||||
"egg_limit": 6
|
||||
}
|
||||
]
|
||||
""";
|
||||
@@ -44,11 +48,15 @@ public class LevelLoaderTests
|
||||
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);
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
@@ -10,6 +10,8 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="FluentAssertions" Version="6.12.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" Version="8.10.0" />
|
||||
<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">
|
||||
|
||||
Reference in New Issue
Block a user