Chessistics/chessistics-tests/Loading/CampaignFileTests.cs
Samuel Bouchet 2d1aea0a7a Snapshot campaign system progress before automation harness
Bundles in-flight work on the campaign/missions system (CampaignDef,
MissionDef, TerrainPatch, TransformerDef, MissionChecker, CampaignLoader,
FlavorBanner, transformer rules), plan files, and matching tests. Baseline
commit so the upcoming automation testing harness lands on a clean tree.
2026-04-16 21:22:49 +02:00

63 lines
2.2 KiB
C#

using Chessistics.Engine.Loading;
using Chessistics.Engine.Model;
using Xunit;
namespace Chessistics.Tests.Loading;
public class CampaignFileTests
{
[Fact]
public void Campaign01_LoadsSuccessfully()
{
var campaign = CampaignLoader.LoadFromFile("../../../../Data/campaigns/campaign_01.json");
Assert.Equal("La Quête du Roi", campaign.Name);
Assert.Equal(7, campaign.Missions.Count);
}
[Fact]
public void Campaign01_Mission5_HasTransformer()
{
var campaign = CampaignLoader.LoadFromFile("../../../../Data/campaigns/campaign_01.json");
var m5 = campaign.Missions[4]; // index 4
Assert.Equal("La Forge", m5.Name);
var transformerCell = m5.TerrainPatch.Cells
.FirstOrDefault(c => c.Type == CellType.Transformer);
Assert.NotNull(transformerCell);
Assert.Equal(CargoType.Wood, transformerCell.Transformer!.InputCargo);
Assert.Equal(CargoType.Tools, transformerCell.Transformer.OutputCargo);
}
[Fact]
public void Campaign01_Mission6_HasArmurerie()
{
var campaign = CampaignLoader.LoadFromFile("../../../../Data/campaigns/campaign_01.json");
var m6 = campaign.Missions[5];
Assert.Equal("L'Armurerie", m6.Name);
Assert.Equal(10, m6.TerrainPatch.NewWidth);
var transformerCell = m6.TerrainPatch.Cells
.FirstOrDefault(c => c.Type == CellType.Transformer);
Assert.NotNull(transformerCell);
Assert.Equal(CargoType.Stone, transformerCell.Transformer!.InputCargo);
Assert.Equal(CargoType.Arms, transformerCell.Transformer.OutputCargo);
}
[Fact]
public void Campaign01_Mission7_HasComptoir()
{
var campaign = CampaignLoader.LoadFromFile("../../../../Data/campaigns/campaign_01.json");
var m7 = campaign.Missions[6];
Assert.Equal("Le Couronnement", m7.Name);
var transformerCell = m7.TerrainPatch.Cells
.FirstOrDefault(c => c.Type == CellType.Transformer);
Assert.NotNull(transformerCell);
Assert.Equal(CargoType.Tools, transformerCell.Transformer!.InputCargo);
Assert.Equal(CargoType.Gold, transformerCell.Transformer.OutputCargo);
}
}