Skip to content

Commit

Permalink
CDMS-223 refactoring 'pairing' to be Context.DecisionComparison & onl…
Browse files Browse the repository at this point in the history
…y having it on one decision at a time. Few decision tests currently failing
  • Loading branch information
craigedmunds committed Jan 9, 2025
1 parent 40b746b commit ea48983
Show file tree
Hide file tree
Showing 15 changed files with 271 additions and 261 deletions.
11 changes: 6 additions & 5 deletions Btms.Analytics/MovementExceptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@ public class MovementExceptions(IMongoDbContext context, ILogger logger)
ItemCount = m.Items.Count,
ChedTypes = m.BtmsStatus.ChedTypes,
Status = m.BtmsStatus,
DecisionMatched = !m.AlvsDecisionStatus.Decisions
.OrderBy(d => d.Context.AlvsDecisionNumber)
.Reverse()
.First()
.Context.DecisionMatched,
DecisionMatched = m.AlvsDecisionStatus.Context.DecisionComparison!.DecisionMatched,
// DecisionMatched = !m.AlvsDecisionStatus.Decisions
// .OrderBy(d => d.Context.AlvsDecisionNumber)
// .Reverse()
// .First()
// .Context.DecisionMatched,
HasNotificationRelationships = m.Relationships.Notifications.Data.Count > 0,
ContiguousAlvsClearanceRequestVersionsFrom1 =
m.ClearanceRequests.Select(c => c.Header!.EntryVersionNumber)
Expand Down
2 changes: 1 addition & 1 deletion Btms.Analytics/MovementsAggregationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ public Task<SummarisedDataset<SingleSeriesDataset, StringBucketDimensionResult>>
.SelectMany(d => d.Decision.Context.Checks.Select(c => new { d.Decision, d.Movement, Check = c}))
.GroupBy(d => new
{
d.Decision.Context.DecisionStatus,
d.Decision.Context.DecisionComparison!.DecisionStatus,
d.Check.CheckCode,
d.Check.AlvsDecisionCode,
d.Check.BtmsDecisionCode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@ public class AlvsDecisionNumber1Missing(ITestOutputHelper output)
[Fact]
public void ShouldHave1AlvsDecision()
{
// Assert
var movement = Client
.GetSingleMovement();

movement
Client
.GetSingleMovement()
.AlvsDecisionStatus
.Decisions
.Count
Expand All @@ -34,11 +31,8 @@ public void ShouldHave1AlvsDecision()
[Fact]
public void ShouldHaveCorrectDecisionNumbers()
{
// Assert
var movement = Client
.GetSingleMovement();

movement
Client
.GetSingleMovement()
.AlvsDecisionStatus
.Decisions
.Select(d => d.Context.AlvsDecisionNumber)
Expand All @@ -49,13 +43,10 @@ public void ShouldHaveCorrectDecisionNumbers()
[Fact]
public void ShouldHaveVersionNotCompleteDecisionStatus()
{

// Assert
var movement = Client
.GetSingleMovement();

movement
Client
.GetSingleMovement()
.AlvsDecisionStatus
.Context.DecisionComparison!
.DecisionStatus
.Should()
.Be(DecisionStatusEnum.AlvsDecisionVersion1NotPresent);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public void SimpleChedPScenario_ShouldBeLinkedAndMatchDecision()

movement.AlvsDecisionStatus.Decisions
.First()
.Context.DecisionMatched
.Context.DecisionComparison!.DecisionMatched
.Should().BeTrue();

var decisionWithLinkAndContext = movement.AuditEntries
Expand Down
53 changes: 24 additions & 29 deletions Btms.Backend.IntegrationTests/DecisionTests/ChedPSimpleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,23 @@ public class ChedPSimpleTests(ITestOutputHelper output)
{

[Fact]
public void ShouldHaveCorrectAlvsDecisionMatchedStatus()
public void ShouldHaveCorrectAlvsDecisionMatchedStatusOnDecison()
{
// Assert
var movement = Client
.GetSingleMovement();

movement.AlvsDecisionStatus.Decisions
Client
.GetSingleMovement()
.AlvsDecisionStatus.Decisions
.Single()
.Context.DecisionMatched
.Context.DecisionComparison!.DecisionMatched
.Should().BeTrue();

movement.AlvsDecisionStatus
.Context.DecisionMatched
}

[Fact]
public void ShouldHaveCorrectAlvsDecisionMatchedStatusAtGlobalLevel()
{
Client
.GetSingleMovement()
.AlvsDecisionStatus
.Context.DecisionComparison!.DecisionMatched
.Should().BeTrue();
}

Expand Down Expand Up @@ -107,33 +111,26 @@ public void ShouldHaveDecisionMatched()
{
var movement = Client
.GetSingleMovement()
.AlvsDecisionStatus
.Context!
.DecisionMatched
.Should()
.BeTrue();
.AlvsDecisionStatus.Context!.DecisionComparison!.DecisionMatched
.Should().BeTrue();
}

[Fact]
public void ShouldHaveDecisionStatus()
{
Client
.GetSingleMovement()
.AlvsDecisionStatus
.DecisionStatus
.Should()
.Be(DecisionStatusEnum.BtmsMadeSameDecisionAsAlvs);
.AlvsDecisionStatus.Context.DecisionComparison!.DecisionStatus
.Should().Be(DecisionStatusEnum.BtmsMadeSameDecisionAsAlvs);
}

[Fact]
public void ShouldHaveChedType()
{
Client
.GetSingleMovement()
.BtmsStatus
.ChedTypes
.Should()
.Equal(ImportNotificationTypeEnum.Cvedp);
.BtmsStatus.ChedTypes
.Should().Equal(ImportNotificationTypeEnum.Cvedp);
}

[Fact]
Expand All @@ -142,8 +139,7 @@ public void ShouldBeLinked()
Client
.GetSingleMovement()
.BtmsStatus.LinkStatus
.Should()
.Be("Linked");
.Should().Be("Linked");
}

// [Fact]
Expand Down Expand Up @@ -180,11 +176,10 @@ public void AlvsDecisionShouldBePaired()
{
Client
.GetSingleMovement()
.AlvsDecisionStatus
.Decisions
.AlvsDecisionStatus.Decisions
.Single()
.Context
.Should()
.Match<DecisionContext>(c => c.BtmsDecisionNumber == 2 && c.Paired == true);
.DecisionComparison!
.Should().Match<DecisionComparison>(c => c.BtmsDecisionNumber == 2 && c.Paired == true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,9 @@ public void AlvsDecisionShouldMatch()
{
Client
.GetSingleMovement()
.AlvsDecisionStatus
.Decisions
.AlvsDecisionStatus.Decisions
.Single()
.Context.DecisionMatched
.Context.DecisionComparison!.DecisionMatched
.Should().BeTrue();
}

Expand All @@ -105,6 +104,6 @@ public void LastBtmsDecisionShouldHaveCorrectAuditEntry()
(ChedPNotification.ReferenceNumber!, 2)
]);

decisionWithLinkAndContext.Context.Paired.Should().BeTrue();
decisionWithLinkAndContext.Context.DecisionComparison!.Paired.Should().BeTrue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ public void ShouldHaveDecisionStatus()
{

// Assert
var movement = Client
.GetSingleMovement();

movement.AlvsDecisionStatus.DecisionStatus.Should().Be(DecisionStatusEnum.NoAlvsDecisions);
Client
.GetSingleMovement()
.AlvsDecisionStatus.Context.DecisionComparison!.DecisionStatus
.Should().Be(DecisionStatusEnum.NoAlvsDecisions);
}

[Fact]
Expand All @@ -47,6 +47,7 @@ public void ShouldHaveDecisionMatched()
movement
.AlvsDecisionStatus
.Context!
.DecisionComparison!
.DecisionMatched
.Should()
.BeFalse();
Expand Down
57 changes: 23 additions & 34 deletions Btms.Backend.IntegrationTests/DecisionTests/NoMatchTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,67 +20,56 @@ public class NoMatchTests(ITestOutputHelper output)
[Fact]
public void ShouldNotHaveLinked()
{
// Assert
var movement = Client
.GetSingleMovement();

movement.BtmsStatus.LinkStatus.Should().Be("Not Linked");
Client
.GetSingleMovement()
.BtmsStatus.LinkStatus
.Should().Be("Not Linked");
}

[Fact]
public void ShouldHaveAlvsDecision()
{
// Assert
var movement = Client
.GetSingleMovement();

movement.AlvsDecisionStatus.Decisions.Count.Should().Be(1);
Client
.GetSingleMovement()
.AlvsDecisionStatus.Decisions.Count
.Should().Be(1);
}

[Fact]
public void ShouldHaveDecisionStatus()
{

// Assert
var movement = Client
.GetSingleMovement();

movement.AlvsDecisionStatus.DecisionStatus.Should().Be(DecisionStatusEnum.InvestigationNeeded);
Client

Check failure on line 41 in Btms.Backend.IntegrationTests/DecisionTests/NoMatchTests.cs

View workflow job for this annotation

GitHub Actions / Run Pull Request Checks

Btms.Backend.IntegrationTests.DecisionTests.NoMatchTests.ShouldHaveDecisionStatus

Expected Client.GetSingleMovement().AlvsDecisionStatus.Context.DecisionComparison!.DecisionStatus to be DecisionStatusEnum.InvestigationNeeded {value: 1}, but found DecisionStatusEnum.AlvsDecisionVersion1NotPresent {value: 5}.
.GetSingleMovement()
.AlvsDecisionStatus.Context.DecisionComparison!.DecisionStatus
.Should().Be(DecisionStatusEnum.InvestigationNeeded);
}

[Fact]
public void ShouldHaveDecisionAuditChecks()
{
var auditEntry = Client
Client
.GetSingleMovement()
.SingleBtmsDecisionAuditEntry();

auditEntry.Context?.Checks.Should().NotBeNull();
.SingleBtmsDecisionAuditEntry()
.Context?.Checks
.Should().NotBeNull();
}

[Fact]
public void ShouldNotHaveDecisionAuditNotifications()
{

var auditEntry = Client
Client
.GetSingleMovement()
.SingleBtmsDecisionAuditEntry();

auditEntry.Context?.ImportNotifications.Should().BeEmpty();
.SingleBtmsDecisionAuditEntry()
.Context?.ImportNotifications
.Should().BeEmpty();
}

[Fact]
public void ShouldHaveDecisionMatchedFalse()
{

// Assert
var movement = Client
.GetSingleMovement();

movement
.AlvsDecisionStatus
.Context!
.DecisionMatched
Client
.GetSingleMovement()
.AlvsDecisionStatus.Context!.DecisionComparison!.DecisionMatched
.Should()
.BeFalse();
}
Expand Down
34 changes: 12 additions & 22 deletions Btms.Backend.IntegrationTests/DecisionTests/NonContiguous.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,40 +47,31 @@ public void ShouldHaveCorrectDecisionNumbers()
[Fact]
public void ShouldHaveVersionNotCompleteDecisionStatus()
{
var movement = Client
.GetSingleMovement();

movement
.AlvsDecisionStatus
.DecisionStatus
Client

Check failure on line 50 in Btms.Backend.IntegrationTests/DecisionTests/NonContiguous.cs

View workflow job for this annotation

GitHub Actions / Run Pull Request Checks

Btms.Backend.IntegrationTests.DecisionTests.NonContiguous.ShouldHaveVersionNotCompleteDecisionStatus

Expected Client.GetSingleMovement().AlvsDecisionStatus.Context.DecisionComparison!.DecisionStatus to be DecisionStatusEnum.AlvsDecisionVersionsNotComplete {value: 6}, but found DecisionStatusEnum.InvestigationNeeded {value: 1}.
.GetSingleMovement()
.AlvsDecisionStatus.Context.DecisionComparison!.DecisionStatus
.Should()
.Be(DecisionStatusEnum.AlvsDecisionVersionsNotComplete);
}

[Fact]
public void ShouldHavePairedAlvsDecisions()
{
var movement = Client
.GetSingleMovement();

movement
Client

Check failure on line 60 in Btms.Backend.IntegrationTests/DecisionTests/NonContiguous.cs

View workflow job for this annotation

GitHub Actions / Run Pull Request Checks

Btms.Backend.IntegrationTests.DecisionTests.NonContiguous.ShouldHavePairedAlvsDecisions

System.NullReferenceException : Object reference not set to an instance of an object.
.GetSingleMovement()
.AlvsDecisionStatus
.Decisions
.Count(d => d.Context.Paired)
.Count(d => d.Context.DecisionComparison!.Paired)
.Should().Be(1);
}

[Fact]
public void ShouldHave1BtmsDecision()
{
var movement = Client
.GetSingleMovement();

movement
.Decisions
.Count
.Should()
.Be(1);
Client
.GetSingleMovement()
.Decisions.Count
.Should().Be(1);
}

[Fact]
Expand All @@ -90,9 +81,8 @@ public void ShouldHavePairedBtmsDecisions()
.GetSingleMovement();

movement

Check failure on line 83 in Btms.Backend.IntegrationTests/DecisionTests/NonContiguous.cs

View workflow job for this annotation

GitHub Actions / Run Pull Request Checks

Btms.Backend.IntegrationTests.DecisionTests.NonContiguous.ShouldHavePairedBtmsDecisions

System.NullReferenceException : Object reference not set to an instance of an object.
.AlvsDecisionStatus
.Decisions
.Select(d => (d.Context.AlvsDecisionNumber, d.Context.BtmsDecisionNumber))
.AlvsDecisionStatus.Decisions
.Select(d => (d.Context.AlvsDecisionNumber, d.Context.DecisionComparison!.BtmsDecisionNumber))
.Should().Equal((1,null), (3,1));
}
}
Loading

0 comments on commit ea48983

Please sign in to comment.