Correction des tests
All checks were successful
Main Build Process / Build & Test (pull_request) Successful in 1m21s

This commit is contained in:
2026-02-23 11:09:53 +01:00
parent f949040a45
commit 39c94015ea
7 changed files with 36 additions and 11 deletions

3
.gitignore vendored
View File

@@ -16,4 +16,5 @@ bin
obj obj
report report
tools/ tools/
TestResults TestResults
/src/.vs

View File

@@ -1,4 +1,3 @@
using System.Net.Http.Json;
using System.Text.Json; using System.Text.Json;
using LittleTown.Core; using LittleTown.Core;
using LittleTown.Core.Ports; using LittleTown.Core.Ports;
@@ -33,16 +32,21 @@ public class WasmStaticDataGetter : IStaticDataGetter
} }
/// <inheritdoc/> /// <inheritdoc/>
public Board GetBoard(int version) public async Task<Board> GetBoardAsync(int version)
{ {
// Synchronous wrapper - not ideal but matches interface // Synchronous wrapper - not ideal but matches interface
InitializeAsync().GetAwaiter().GetResult(); await InitializeAsync();
Board board = JsonSerializer.Deserialize<Board>(_boardData) Board board = JsonSerializer.Deserialize<Board>(_boardData)
?? throw new JsonException("Cannot deserialize Board"); ?? throw new JsonException("Cannot deserialize Board");
return board; return board;
} }
public Board GetBoard(int version)
{
throw new NotImplementedException("Use the asynchronous version of GetBoard for WebAssembly.");
}
/// <inheritdoc/> /// <inheritdoc/>
public ICollection<Building> GetBuildings() public ICollection<Building> GetBuildings()
{ {

View File

@@ -9,7 +9,6 @@
<link rel="stylesheet" href="@Assets["lib/bootstrap/dist/css/bootstrap.min.css"]" /> <link rel="stylesheet" href="@Assets["lib/bootstrap/dist/css/bootstrap.min.css"]" />
<link rel="stylesheet" href="@Assets["app.css"]" /> <link rel="stylesheet" href="@Assets["app.css"]" />
<link rel="stylesheet" href="@Assets["LittleTown.Blazor.styles.css"]" /> <link rel="stylesheet" href="@Assets["LittleTown.Blazor.styles.css"]" />
<link rel="stylesheet" href="LittleTown.Blazor.Client.styles.css" />
<ImportMap /> <ImportMap />
<link rel="icon" type="image/png" href="favicon.png" /> <link rel="icon" type="image/png" href="favicon.png" />
<HeadOutlet /> <HeadOutlet />

View File

@@ -44,7 +44,7 @@ public class Match
{ {
ArgumentNullException.ThrowIfNull(staticData); ArgumentNullException.ThrowIfNull(staticData);
_board = staticData.GetBoard(1); _board = staticData.GetBoardAsync(1).GetAwaiter().GetResult();
_buildings = staticData.GetBuildings(); _buildings = staticData.GetBuildings();
_objectives = staticData.GetObjectives(); _objectives = staticData.GetObjectives();
} }

View File

@@ -5,6 +5,11 @@ namespace LittleTown.Core.Ports;
/// </summary> /// </summary>
public interface IStaticDataGetter public interface IStaticDataGetter
{ {
/// <summary> Recuperer un plateau de jeu </summary>
/// <param name="version">la version du plateau (1 ou 2)</param>
/// <returns> une instance du plateau avec les données statique</returns>
public Task<Board> GetBoardAsync(int version);
/// <summary> Recuperer un plateau de jeu </summary> /// <summary> Recuperer un plateau de jeu </summary>
/// <param name="version">la version du plateau (1 ou 2)</param> /// <param name="version">la version du plateau (1 ou 2)</param>
/// <returns> une instance du plateau avec les données statique</returns> /// <returns> une instance du plateau avec les données statique</returns>

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
@@ -15,4 +15,11 @@
<ProjectReference Include="..\LittleTown.Core\LittleTown.Core.csproj" /> <ProjectReference Include="..\LittleTown.Core\LittleTown.Core.csproj" />
</ItemGroup> </ItemGroup>
<!-- Copier les fichiers JSON dans le dossier de build -->
<ItemGroup>
<Content Include="Data\*.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project> </Project>

View File

@@ -26,12 +26,16 @@ public class StaticDataGetter : IStaticDataGetter
_buildingData = buildingData; _buildingData = buildingData;
} }
/// <summary> Constructeur avec les chemins par défaut, à utiliser pour les tests seulement </summary> /// <summary> Constructeur avec les chemins par défaut </summary>
public StaticDataGetter() public StaticDataGetter()
{ {
string boardPath = Path.Combine(Environment.CurrentDirectory, "../../../src/LittleTown.StaticDataAccess/Data/Board1.json"); // Les fichiers JSON sont copiés dans le dossier de build via le .csproj
string buildingPath = Path.Combine(Environment.CurrentDirectory, "../../../src/LittleTown.StaticDataAccess/Data/Buildings.json"); // Ils sont donc toujours relatifs à l'exécutable
string objectivesPath = Path.Combine(Environment.CurrentDirectory, "../../../src/LittleTown.StaticDataAccess/Data/Objectives.json"); var baseDirectory = AppContext.BaseDirectory;
string boardPath = Path.Combine(baseDirectory, "Data", "Board1.json");
string buildingPath = Path.Combine(baseDirectory, "Data", "Buildings.json");
string objectivesPath = Path.Combine(baseDirectory, "Data", "Objectives.json");
ReadFiles(boardPath, buildingPath, objectivesPath); ReadFiles(boardPath, buildingPath, objectivesPath);
} }
@@ -49,6 +53,11 @@ public class StaticDataGetter : IStaticDataGetter
return board; return board;
} }
public Task<Board> GetBoardAsync(int version)
{
return Task.FromResult(GetBoard(version));
}
/// <inheritdoc/> /// <inheritdoc/>
public ICollection<Building> GetBuildings() public ICollection<Building> GetBuildings()
{ {