diff --git a/Btms.Analytics.Tests/Fixtures/BasicSampleDataTestFixture.cs b/Btms.Analytics.Tests/Fixtures/BasicSampleDataTestFixture.cs index 0a7a3253..15760199 100644 --- a/Btms.Analytics.Tests/Fixtures/BasicSampleDataTestFixture.cs +++ b/Btms.Analytics.Tests/Fixtures/BasicSampleDataTestFixture.cs @@ -28,7 +28,7 @@ public BasicSampleDataTestFixture(IMessageSink messageSink) _mongoDbContext = rootScope.ServiceProvider.GetRequiredService(); // Would like to pick this up from env/config/DB state - var insertToMongo = false; + var insertToMongo = true; if (insertToMongo) { diff --git a/Btms.Backend.IntegrationTests/DecisionTests/ChedPSimpleTests.cs b/Btms.Backend.IntegrationTests/DecisionTests/ChedPSimpleTests.cs index d267ee1d..2aeaf7b4 100644 --- a/Btms.Backend.IntegrationTests/DecisionTests/ChedPSimpleTests.cs +++ b/Btms.Backend.IntegrationTests/DecisionTests/ChedPSimpleTests.cs @@ -131,12 +131,21 @@ public void ShouldHaveChedType() .GetResourceObjects() .Single(); + movement - .AlvsDecisionStatus - .Context! + .Status .ChedTypes .Should() .Equal(ImportNotificationTypeEnum.Cvedp); + + // + // movement + // .AlvsDecisionStatus + // .Context! + // .ChedTypes + // .Should() + // .Equal(ImportNotificationTypeEnum.Cvedp); + } [Fact(Skip = "Relationships aren't being deserialised correctly")] diff --git a/Btms.Backend.IntegrationTests/DecisionTests/ManyItemTests.cs b/Btms.Backend.IntegrationTests/DecisionTests/ManyItemTests.cs new file mode 100644 index 00000000..187e02f2 --- /dev/null +++ b/Btms.Backend.IntegrationTests/DecisionTests/ManyItemTests.cs @@ -0,0 +1,46 @@ +using System.Diagnostics.CodeAnalysis; +using Btms.Common.Extensions; +using Btms.Model; +using Btms.SyncJob; +using Btms.Backend.IntegrationTests.JsonApiClient; +using FluentAssertions; +using System.Net; +using System.Net.Http.Json; +using System.Text; +using System.Text.Json; +using System.Text.Json.Nodes; +using System.Text.Json.Serialization; +using Btms.Backend.IntegrationTests.Extensions; +using Btms.Backend.IntegrationTests.Helpers; +using Btms.Business.Commands; +using Btms.Model.Cds; +using Btms.Model.Ipaffs; +using Btms.Types.Alvs; +using TestDataGenerator.Scenarios; +using Json.More; +using Microsoft.Extensions.Logging; +using TestDataGenerator.Scenarios.ChedP; +using Xunit; +using Xunit.Abstractions; +using ImportNotification = Btms.Types.Ipaffs.ImportNotification; + +namespace Btms.Backend.IntegrationTests.DecisionTests; + +[Trait("Category", "Integration")] +public class ManyItemTests(InMemoryScenarioApplicationFactory factory, ITestOutputHelper testOutputHelper) + : BaseApiTests(factory, testOutputHelper, "DecisionTests"), IClassFixture> +{ + + [Fact] + public void ShouldHaveOneChedType() + { + // Act + var movementResource = Client.AsJsonApiClient() + .Get("api/movements") + // .Data + .GetResourceObjects() + .Single() + .Status.ChedTypes!.Count().Should().Be(1); + } + +} \ No newline at end of file diff --git a/Btms.Business.Tests/Services/Decisions/NoMatchDecisionsTest.cs b/Btms.Business.Tests/Services/Decisions/NoMatchDecisionsTest.cs index 492e6fe2..2ef160c1 100644 --- a/Btms.Business.Tests/Services/Decisions/NoMatchDecisionsTest.cs +++ b/Btms.Business.Tests/Services/Decisions/NoMatchDecisionsTest.cs @@ -78,13 +78,17 @@ private static List GenerateMovements(bool hasChecks) : new CrNoMatchNoChecksScenarioGenerator(NullLogger.Instance); var config = ScenarioFactory.CreateScenarioConfig(generator, 1, 1); - - var generatorResult = generator.Generate(1, 1, DateTime.UtcNow, config); + var movementBuilder = new MovementBuilder(NullLogger.Instance); - return generatorResult.Select(x => - { - var internalClearanceRequest = AlvsClearanceRequestMapper.Map((AlvsClearanceRequest)x); - return movementBuilder.From(internalClearanceRequest).Build(); - }).ToList(); + var generatorResult = generator + .Generate(1, 1, DateTime.UtcNow, config) + .First(x => x is AlvsClearanceRequest); + + var internalClearanceRequest = AlvsClearanceRequestMapper.Map((AlvsClearanceRequest)generatorResult); + var movement = movementBuilder + .From(internalClearanceRequest) + .Build(); + + return [movement]; } } \ No newline at end of file diff --git a/Btms.Business.Tests/Services/Matching/MatchingServiceTests.cs b/Btms.Business.Tests/Services/Matching/MatchingServiceTests.cs index 8d948a18..0654b078 100644 --- a/Btms.Business.Tests/Services/Matching/MatchingServiceTests.cs +++ b/Btms.Business.Tests/Services/Matching/MatchingServiceTests.cs @@ -53,15 +53,16 @@ private static List GenerateMovements() var movementBuilder = new MovementBuilder(NullLogger.Instance); var config = ScenarioFactory.CreateScenarioConfig(generator, 1, 1); - var generatorResult = generator.Generate(1, 1, DateTime.UtcNow, config); + var generatorResult = generator + .Generate(1, 1, DateTime.UtcNow, config) + .First(x => x is AlvsClearanceRequest); - return generatorResult - .Select(x => - { - var internalClearanceRequest = AlvsClearanceRequestMapper.Map((AlvsClearanceRequest)x); - return movementBuilder.From(internalClearanceRequest).Build(); - }) - .ToList(); + var internalClearanceRequest = AlvsClearanceRequestMapper.Map((AlvsClearanceRequest)generatorResult); + var movement = movementBuilder + .From(internalClearanceRequest) + .Build(); + + return [movement]; } private static (List Notifications, List Movements) GenerateSimpleMatch() diff --git a/Btms.Business/Builders/MovementBuilder.cs b/Btms.Business/Builders/MovementBuilder.cs index 3db8df15..b692a0e4 100644 --- a/Btms.Business/Builders/MovementBuilder.cs +++ b/Btms.Business/Builders/MovementBuilder.cs @@ -42,9 +42,10 @@ public MovementBuilder From(Model.Cds.CdsClearanceRequest request) } }; - _movement - .AlvsDecisionStatus.Context - .ChedTypes = GetChedTypes(); + //TODO : Remove + // _movement + // .AlvsDecisionStatus.Context + // .ChedTypes = GetChedTypes(); return this; } @@ -63,6 +64,7 @@ private ImportNotificationTypeEnum[] GetChedTypes(List? items = null) .Select(d => d.DocumentCode!.GetChedType() ) + .Distinct() .Where(ct => ct.HasValue()) .Select(ct => ct!.Value) .ToArray()!;