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(9, 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 Comptoir", 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); } }