Skip to content

Commit

Permalink
fix: new address can be null for rejected or retired address because …
Browse files Browse the repository at this point in the history
…of municipality merger
  • Loading branch information
jvandaal authored and ArneD committed Jul 30, 2024
1 parent 9403953 commit ac8e90c
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 25 deletions.
18 changes: 9 additions & 9 deletions paket.dependencies
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,15 @@ nuget Be.Vlaanderen.Basisregisters.Projector 15.0.0

nuget Be.Vlaanderen.Basisregisters.Crab 4.0.0

nuget Be.Vlaanderen.Basisregisters.GrAr.Common 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Contracts 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Edit 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Import 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Legacy 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Provenance 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Extracts 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Oslo 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Provenance.AcmIdm 21.14.0
nuget Be.Vlaanderen.Basisregisters.GrAr.Common 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Contracts 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Edit 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Import 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Legacy 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Provenance 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Extracts 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Oslo 21.14.1
nuget Be.Vlaanderen.Basisregisters.GrAr.Provenance.AcmIdm 21.14.1

nuget Be.Vlaanderen.Basisregisters.Shaperon 10.0.2
nuget Be.Vlaanderen.Basisregisters.Shaperon.Geometries 10.0.2
Expand Down
28 changes: 14 additions & 14 deletions paket.lock
Original file line number Diff line number Diff line change
Expand Up @@ -253,18 +253,18 @@ NUGET
Autofac.Extensions.DependencyInjection (>= 9.0)
Be.Vlaanderen.Basisregisters.EventHandling (5.0)
Be.Vlaanderen.Basisregisters.Generators.Guid.Deterministic (4.0)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14.1)
Be.Vlaanderen.Basisregisters.AggregateSource (>= 9.0.1)
Be.Vlaanderen.Basisregisters.CommandHandling (>= 9.0.1)
NetTopologySuite (>= 2.5)
NodaTime (>= 3.1.11)
Be.Vlaanderen.Basisregisters.GrAr.Contracts (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Edit (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Contracts (21.14.1)
Be.Vlaanderen.Basisregisters.GrAr.Edit (21.14.1)
NetTopologySuite (>= 2.5)
Be.Vlaanderen.Basisregisters.GrAr.Extracts (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Extracts (21.14.1)
Be.Vlaanderen.Basisregisters.Api (>= 21.0)
Be.Vlaanderen.Basisregisters.Shaperon (>= 10.0.2)
Be.Vlaanderen.Basisregisters.GrAr.Import (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Import (21.14.1)
Autofac (>= 8.0)
Be.Vlaanderen.Basisregisters.AggregateSource.SqlStreamStore (>= 9.0.1)
Be.Vlaanderen.Basisregisters.CommandHandling (>= 9.0.1)
Expand All @@ -279,28 +279,28 @@ NUGET
Serilog (>= 3.1.1)
Serilog.Extensions.Logging (>= 8.0)
System.Threading.Tasks.Dataflow (>= 8.0)
Be.Vlaanderen.Basisregisters.GrAr.Legacy (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Legacy (21.14.1)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14.1)
Be.Vlaanderen.Basisregisters.Utilities.Rfc3339DateTimeOffset (>= 4.0)
Newtonsoft.Json (>= 13.0.3)
Be.Vlaanderen.Basisregisters.GrAr.Oslo (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Oslo (21.14.1)
Be.Vlaanderen.Basisregisters.AspNetCore.Mvc.Formatters.Json (>= 5.0)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14.1)
Be.Vlaanderen.Basisregisters.Utilities.Rfc3339DateTimeOffset (>= 4.0)
Microsoft.Extensions.Configuration (>= 8.0)
Microsoft.Extensions.Http.Polly (>= 8.0.3)
Newtonsoft.Json (>= 13.0.3)
Be.Vlaanderen.Basisregisters.GrAr.Provenance (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Provenance (21.14.1)
Be.Vlaanderen.Basisregisters.CommandHandling (>= 9.0.1)
Be.Vlaanderen.Basisregisters.Crab (>= 4.0)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14.1)
Microsoft.CSharp (>= 4.7)
Be.Vlaanderen.Basisregisters.GrAr.Provenance.AcmIdm (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Provenance.AcmIdm (21.14.1)
Be.Vlaanderen.Basisregisters.Auth.AcmIdm (>= 2.0)
Be.Vlaanderen.Basisregisters.CommandHandling (>= 9.0.1)
Be.Vlaanderen.Basisregisters.Crab (>= 4.0)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Provenance (21.14)
Be.Vlaanderen.Basisregisters.GrAr.Common (21.14.1)
Be.Vlaanderen.Basisregisters.GrAr.Provenance (21.14.1)
Microsoft.CSharp (>= 4.7)
Be.Vlaanderen.Basisregisters.MessageHandling.AwsSqs.Simple (5.0.1)
AWSSDK.Core (>= 3.7.302.15)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,20 @@ await DetachBecauseRejected(

foreach (var relation in relations)
{
if (!message.NewAddressPersistentLocalId.HasValue)
{
await DetachBecauseRejected(
commandHandler,
new AddressPersistentLocalId(message.AddressPersistentLocalId),
message.Provenance,
ct);
return;
}

var command = new ReplaceBuildingUnitAddressBecauseOfMunicipalityMerger(
new BuildingPersistentLocalId(relation.BuildingPersistentLocalId),
new BuildingUnitPersistentLocalId(relation.BuildingUnitPersistentLocalId),
new AddressPersistentLocalId(message.NewAddressPersistentLocalId),
new AddressPersistentLocalId(message.NewAddressPersistentLocalId.Value),
new AddressPersistentLocalId(message.AddressPersistentLocalId),
FromProvenance(message.Provenance));

Expand Down Expand Up @@ -178,10 +188,20 @@ await DetachBecauseRetired(

foreach (var relation in relations)
{
if (!message.NewAddressPersistentLocalId.HasValue)
{
await DetachBecauseRetired(
commandHandler,
new AddressPersistentLocalId(message.AddressPersistentLocalId),
message.Provenance,
ct);
return;
}

var command = new ReplaceBuildingUnitAddressBecauseOfMunicipalityMerger(
new BuildingPersistentLocalId(relation.BuildingPersistentLocalId),
new BuildingUnitPersistentLocalId(relation.BuildingUnitPersistentLocalId),
new AddressPersistentLocalId(message.NewAddressPersistentLocalId),
new AddressPersistentLocalId(message.NewAddressPersistentLocalId.Value),
new AddressPersistentLocalId(message.AddressPersistentLocalId),
FromProvenance(message.Provenance));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,40 @@ await Then(async _ =>
});
}

[Fact]
public async Task DetachBuildingUnitAddressBecauseOfMunicipalityMergerWhenNoNewAddress_AddressWasRejectedBecauseOfMunicipalityMerger()
{
var oldAddressPersistentLocalId = 1;

var @event = new AddressWasRejectedBecauseOfMunicipalityMerger(
Fixture.Create<int>(),
oldAddressPersistentLocalId,
null,
new Provenance(
Instant.FromDateTimeOffset(DateTimeOffset.Now).ToString(),
Application.BuildingRegistry.ToString(),
Modification.Update.ToString(),
Organisation.Aiv.ToString(),
"test"));

AddRelations(oldAddressPersistentLocalId, oldAddressPersistentLocalId);

Given(@event);
await Then(async _ =>
{
_mockCommandHandler.Verify(x => x.Handle(
It.IsAny<DetachAddressFromBuildingUnitBecauseAddressWasRejected>(), CancellationToken.None),
Times.Exactly(2));

var oldAddressRelations = _fakeBackOfficeContext.BuildingUnitAddressRelation
.Where(x => x.AddressPersistentLocalId == oldAddressPersistentLocalId)
.ToList();

oldAddressRelations.Should().BeEmpty();
await Task.CompletedTask;
});
}

[Fact]
public async Task DetachAddressFromBuildingUnitBecause_AddressWasRejectedBecauseStreetNameWasRetired()
{
Expand Down Expand Up @@ -552,6 +586,40 @@ await Then(async _ =>
});
}

[Fact]
public async Task DetachBuildingUnitAddressBecauseOfMunicipalityMergerWhenNoNewAddress_AddressWasRetiredBecauseOfMunicipalityMerger()
{
var oldAddressPersistentLocalId = 1;

var @event = new AddressWasRetiredBecauseOfMunicipalityMerger(
Fixture.Create<int>(),
oldAddressPersistentLocalId,
null,
new Provenance(
Instant.FromDateTimeOffset(DateTimeOffset.Now).ToString(),
Application.BuildingRegistry.ToString(),
Modification.Update.ToString(),
Organisation.Aiv.ToString(),
"test"));

AddRelations(oldAddressPersistentLocalId, oldAddressPersistentLocalId);

Given(@event);
await Then(async _ =>
{
_mockCommandHandler.Verify(x => x.Handle(
It.IsAny<DetachAddressFromBuildingUnitBecauseAddressWasRetired>(), CancellationToken.None),
Times.Exactly(2));

var oldAddressRelations = _fakeBackOfficeContext.BuildingUnitAddressRelation
.Where(x => x.AddressPersistentLocalId == oldAddressPersistentLocalId)
.ToList();

oldAddressRelations.Should().BeEmpty();
await Task.CompletedTask;
});
}

[Fact]
public async Task DetachAddressFromBuildingUnitBecauseStreetNameWasRemoved()
{
Expand Down

0 comments on commit ac8e90c

Please sign in to comment.