Skip to content

Commit

Permalink
feat: or-2334 add VerenigingAanvaarddeDubbeleVereniging in beheer his…
Browse files Browse the repository at this point in the history
…toriek
  • Loading branch information
Jan Lesage authored and emalfroy committed Dec 12, 2024
1 parent 5c32325 commit b1477c9
Show file tree
Hide file tree
Showing 21 changed files with 284 additions and 237 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -224,10 +224,10 @@ public async Task Project(IEvent<LidmaatschapWerdGewijzigd> @event, IDocumentOpe
public async Task Project(IEvent<LidmaatschapWerdVerwijderd> @event, IDocumentOperations ops)
=> await Update(@event, ops, BeheerVerenigingDetailProjector.Apply);

public async Task Project(IEvent<VerenigingWerdGermarkeerdAlsDubbelVan> @event, IDocumentOperations ops)
public async Task Project(IEvent<VerenigingWerdGemarkeerdAlsDubbelVan> @event, IDocumentOperations ops)
=> await Update(@event, ops, BeheerVerenigingDetailProjector.Apply);

public async Task Project(IEvent<VerenigingAanvaardeDubbeleVereniging> @event, IDocumentOperations ops)
public async Task Project(IEvent<VerenigingAanvaarddeDubbeleVereniging> @event, IDocumentOperations ops)
=> await Update(@event, ops, BeheerVerenigingDetailProjector.Apply);

private async Task SoftDelete(string? streamKey, IDocumentOperations ops)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -750,13 +750,13 @@ public static void Apply(IEvent<LidmaatschapWerdVerwijderd> lidmaatschapWerdToeg
}


public static void Apply(IEvent<VerenigingWerdGermarkeerdAlsDubbelVan> verenigingWerdGemarkeerdAlsDubbel, BeheerVerenigingDetailDocument document)
public static void Apply(IEvent<VerenigingWerdGemarkeerdAlsDubbelVan> verenigingWerdGemarkeerdAlsDubbel, BeheerVerenigingDetailDocument document)
{
document.Status = VerenigingStatus.Dubbel;
document.IsDubbelVan = verenigingWerdGemarkeerdAlsDubbel.Data.VCodeAuthentiekeVereniging;
}

public static void Apply(IEvent<VerenigingAanvaardeDubbeleVereniging> verenigingAanvaardeDubbeleVereniging, BeheerVerenigingDetailDocument document)
public static void Apply(IEvent<VerenigingAanvaarddeDubbeleVereniging> verenigingAanvaardeDubbeleVereniging, BeheerVerenigingDetailDocument document)
{
document.CorresponderendeVCodes =
document.CorresponderendeVCodes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,16 +200,19 @@ public async Task Project(IEvent<LidmaatschapWerdGewijzigd> @event, IDocumentOpe
public async Task Project(IEvent<LidmaatschapWerdVerwijderd> @event, IDocumentOperations ops)
=> await Update(@event, ops, BeheerVerenigingHistoriekProjector.Apply);

public async Task Project(IEvent<VerenigingWerdGermarkeerdAlsDubbelVan> @event, IDocumentOperations ops)
public async Task Project(IEvent<VerenigingWerdGemarkeerdAlsDubbelVan> @event, IDocumentOperations ops)
=> await Update(@event, ops, BeheerVerenigingHistoriekProjector.Apply);

public async Task Project(IEvent<VerenigingAanvaarddeDubbeleVereniging> @event, IDocumentOperations ops)
=> await Update(@event, ops, BeheerVerenigingHistoriekProjector.Apply);

public async Task Project(
IEvent<VertegenwoordigerWerdOvergenomenUitKBO> vertegenwoordigerWerdOvergenomenUitKbo,
IEvent<VertegenwoordigerWerdOvergenomenUitKBO> @event,
IDocumentOperations ops)
{
var doc = (await ops.LoadAsync<BeheerVerenigingHistoriekDocument>(vertegenwoordigerWerdOvergenomenUitKbo.StreamKey!))!;
var doc = (await ops.LoadAsync<BeheerVerenigingHistoriekDocument>(@event.StreamKey!))!;

BeheerVerenigingHistoriekProjector.Apply(vertegenwoordigerWerdOvergenomenUitKbo, doc);
BeheerVerenigingHistoriekProjector.Apply(@event, doc);

ops.Store(doc);
}
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ public async Task Project(IEvent<LidmaatschapWerdGewijzigd> @event, IDocumentOpe
public async Task Project(IEvent<LidmaatschapWerdVerwijderd> @event, IDocumentOperations ops)
=> await Update(@event, ops, PubliekVerenigingDetailProjector.Apply);

public async Task Project(IEvent<VerenigingWerdGermarkeerdAlsDubbelVan> @event, IDocumentOperations ops)
public async Task Project(IEvent<VerenigingWerdGemarkeerdAlsDubbelVan> @event, IDocumentOperations ops)
=> await Update(@event, ops, PubliekVerenigingDetailProjector.Apply);

private static async Task Update<T>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ public static void Apply(IEvent<LidmaatschapWerdVerwijderd> lidmaatschapWerdVerw
.ToArray();
}

public static void Apply(IEvent<VerenigingWerdGermarkeerdAlsDubbelVan> verenigingWerdGemarkeerdAlsDubbel, PubliekVerenigingDetailDocument document)
public static void Apply(IEvent<VerenigingWerdGemarkeerdAlsDubbelVan> verenigingWerdGemarkeerdAlsDubbel, PubliekVerenigingDetailDocument document)
{
document.Status = VerenigingStatus.Dubbel;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace AssociationRegistry.Events;

using Framework;
using Vereniging;

public record VerenigingWerdGemarkeerdAlsDubbelVan(string VCode, string VCodeAuthentiekeVereniging) : IEvent
{
public static VerenigingWerdGemarkeerdAlsDubbelVan With(VCode vCode, VCode vCodeAuthentiekeVereniging)
=> new(vCode, vCodeAuthentiekeVereniging);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
using Framework;
using Vereniging;

public record VerenigingAanvaardeDubbeleVereniging(string VCode, string VCodeDubbeleVereniging) : IEvent
public record VerenigingAanvaarddeDubbeleVereniging(string VCode, string VCodeDubbeleVereniging) : IEvent
{
public static VerenigingAanvaardeDubbeleVereniging With(VCode vCode, VCode dubbeleVereniging)
public static VerenigingAanvaarddeDubbeleVereniging With(VCode vCode, VCode dubbeleVereniging)
=> new(vCode, dubbeleVereniging);
}

Expand Down
4 changes: 2 additions & 2 deletions src/AssociationRegistry/Vereniging/Vereniging.cs
Original file line number Diff line number Diff line change
Expand Up @@ -235,13 +235,13 @@ public void SchrijfInInPubliekeDatastroom()
public void MarkeerAlsDubbelVan(VCode isDubbelVan)
{
Throw<VerenigingKanGeenDubbelWordenVanZichzelf>.If(isDubbelVan.Equals(VCode));
AddEvent(VerenigingWerdGermarkeerdAlsDubbelVan.With(VCode, isDubbelVan));
AddEvent(VerenigingWerdGemarkeerdAlsDubbelVan.With(VCode, isDubbelVan));
}

public void AanvaardDubbeleVereniging(VCode dubbeleVereniging)
{
Throw<InvalidOperationVerenigingKanGeenDubbelWordenVanZichzelf>.If(dubbeleVereniging.Equals(VCode));
AddEvent(VerenigingAanvaardeDubbeleVereniging.With(VCode, dubbeleVereniging));
AddEvent(VerenigingAanvaarddeDubbeleVereniging.With(VCode, dubbeleVereniging));
}

public void Hydrate(VerenigingState obj)
Expand Down
4 changes: 2 additions & 2 deletions src/AssociationRegistry/Vereniging/VerenigingState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -665,13 +665,13 @@ public VerenigingState Apply(LocatieDuplicaatWerdVerwijderdNaAdresMatch @event)
public VerenigingState Apply(AdresHeeftGeenVerschillenMetAdressenregister @event)
=> this;

public VerenigingState Apply(VerenigingWerdGermarkeerdAlsDubbelVan @event)
public VerenigingState Apply(VerenigingWerdGemarkeerdAlsDubbelVan @event)
=> this with
{
IsDubbel = true,
};

public VerenigingState Apply(VerenigingAanvaardeDubbeleVereniging @event)
public VerenigingState Apply(VerenigingAanvaarddeDubbeleVereniging @event)
=> this with
{
CorresponderendeVCodes = CorresponderendeVCodes.Append(@event.VCodeDubbeleVereniging).ToArray(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public async Task Then_It_Saves_An_VerenigingWerdGermarkeerdAlsDubbel_Event()
await _commandHandler.Handle(new CommandEnvelope<MarkeerAlsDubbelVanCommand>(command, _fixture.Create<CommandMetadata>()));

_verenigingRepositoryMock.ShouldHaveSaved(
new VerenigingWerdGermarkeerdAlsDubbelVan(
new VerenigingWerdGemarkeerdAlsDubbelVan(
_scenario.VCode,
command.VCodeAuthentiekeVereniging));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ public static HistoriekGebeurtenisResponse LidmaatschapWerdGewijzigd(WijzigLidma
=> new()
{
Beschrijving = $"Vereniging werd gemarkeerd als dubbel van {request.IsDubbelVan}.",
Gebeurtenis = nameof(Events.VerenigingWerdGermarkeerdAlsDubbelVan),
Gebeurtenis = nameof(Events.VerenigingWerdGemarkeerdAlsDubbelVan),
Data = new
{
VCode = vCode,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void With_Context()
public void With_All_Gebeurtenissen()
{
var gebeurtenis =
Response.Gebeurtenissen.SingleOrDefault(x => x.Gebeurtenis == nameof(VerenigingWerdGermarkeerdAlsDubbelVan));
Response.Gebeurtenissen.SingleOrDefault(x => x.Gebeurtenis == nameof(VerenigingWerdGemarkeerdAlsDubbelVan));

gebeurtenis.ShouldCompare(HistoriekGebeurtenisMapper.VerenigingWerdGermarkeerdAlsDubbelVan(TestContext.Request, TestContext.VCode),
compareConfig: HistoriekComparisonConfig.Instance);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
using Admin.Schema.Constants;

[Collection(nameof(ProjectionContext))]
public class Given_VerenigingWerdToegevoegdAlsDubbel(BeheerDetailScenarioFixture<VerenigingWerdToegevoegdAlsDubbelScenario> fixture)
: BeheerDetailScenarioClassFixture<VerenigingWerdToegevoegdAlsDubbelScenario>
public class Given_VerenigingWerdToegevoegdAlsDubbel(BeheerDetailScenarioFixture<VerenigingAanvaarddeDubbeleVerenigingScenario> fixture)
: BeheerDetailScenarioClassFixture<VerenigingAanvaarddeDubbeleVerenigingScenario>
{
[Fact]
public void Metadata_Is_Updated()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public void Metadata_Is_Updated()

[Fact]
public void Document_IsDubbelVan_Is_Updated()
=> fixture.Result.IsDubbelVan.Should().Be(fixture.Scenario.VerenigingWerdGermarkeerdAlsDubbelVan.VCodeAuthentiekeVereniging);
=> fixture.Result.IsDubbelVan.Should().Be(fixture.Scenario.VerenigingWerdGemarkeerdAlsDubbelVan.VCodeAuthentiekeVereniging);

[Fact]
public void Document_Status_Is_Dubbel()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
namespace AssociationRegistry.Test.Projections.Beheer.Historiek.Dubbels;

using Admin.Schema.Historiek;
using Events;

[Collection(nameof(ProjectionContext))]
public class Given_VerenigingAanvaarddeDubbeleVereniging(BeheerHistoriekScenarioFixture<VerenigingAanvaarddeDubbeleVerenigingScenario> fixture)
: BeheerHistoriekScenarioClassFixture<VerenigingAanvaarddeDubbeleVerenigingScenario>
{
[Fact]
public void Metadata_Is_Updated()
=> fixture.Result
.Metadata.Version.Should().Be(2);

[Fact]
public void Document_Is_Updated()
=> fixture.Result
.Gebeurtenissen.Last()
.Should().BeEquivalentTo(new BeheerVerenigingHistoriekGebeurtenis(
Beschrijving: $"Vereniging {fixture.Scenario.DubbeleVerenigingWerdGeregistreerd.VCode} werd toegevoegd als dubbel.",
nameof(VerenigingAanvaarddeDubbeleVereniging),
new
{
VCode = fixture.Scenario.VCode,
VCodeDubbeleVereniging = fixture.Scenario.DubbeleVerenigingWerdGeregistreerd.VCode,
},
fixture.MetadataInitiator,
fixture.MetadataTijdstip));
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public void Document_Is_Updated()
.Gebeurtenissen.Last()
.Should().BeEquivalentTo(new BeheerVerenigingHistoriekGebeurtenis(
Beschrijving: $"Vereniging werd gemarkeerd als dubbel van {fixture.Scenario.AuthentiekeVerenigingWerdGeregistreerd.VCode}.",
nameof(VerenigingWerdGermarkeerdAlsDubbelVan),
nameof(VerenigingWerdGemarkeerdAlsDubbelVan),
new
{
VCode = fixture.Scenario.VCode,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ namespace AssociationRegistry.Test.Projections.Scenario;
/// <summary>
/// This is exactly the same as VerenigingWerdGemarkeerdAlsDubbelVanScenario, but from the POV of the AuthentiekeVereniging
/// </summary>
public class VerenigingWerdToegevoegdAlsDubbelScenario : ScenarioBase
public class VerenigingAanvaarddeDubbeleVerenigingScenario : ScenarioBase
{
public FeitelijkeVerenigingWerdGeregistreerd DubbeleVerenigingWerdGeregistreerd { get; }
public FeitelijkeVerenigingWerdGeregistreerd AuthentiekeVerenigingWerdGeregistreerd { get; }
public VerenigingWerdGermarkeerdAlsDubbelVan VerenigingWerdGermarkeerdAlsDubbelVan { get; set; }
public VerenigingAanvaardeDubbeleVereniging VerenigingAanvaardeDubbeleVereniging { get; set; }
public VerenigingWerdGemarkeerdAlsDubbelVan VerenigingWerdGemarkeerdAlsDubbelVan { get; set; }
public VerenigingAanvaarddeDubbeleVereniging VerenigingAanvaarddeDubbeleVereniging { get; set; }

public VerenigingWerdToegevoegdAlsDubbelScenario()
public VerenigingAanvaarddeDubbeleVerenigingScenario()
{
DubbeleVerenigingWerdGeregistreerd = AutoFixture.Create<FeitelijkeVerenigingWerdGeregistreerd>();
AuthentiekeVerenigingWerdGeregistreerd = AutoFixture.Create<FeitelijkeVerenigingWerdGeregistreerd>();

VerenigingWerdGermarkeerdAlsDubbelVan = AutoFixture.Create<VerenigingWerdGermarkeerdAlsDubbelVan>() with
VerenigingWerdGemarkeerdAlsDubbelVan = AutoFixture.Create<VerenigingWerdGemarkeerdAlsDubbelVan>() with
{
VCode = DubbeleVerenigingWerdGeregistreerd.VCode,
};

VerenigingAanvaardeDubbeleVereniging = AutoFixture.Create<VerenigingAanvaardeDubbeleVereniging>() with
VerenigingAanvaarddeDubbeleVereniging = AutoFixture.Create<VerenigingAanvaarddeDubbeleVereniging>() with
{
VCode = AuthentiekeVerenigingWerdGeregistreerd.VCode,
VCodeDubbeleVereniging = DubbeleVerenigingWerdGeregistreerd.VCode,
Expand All @@ -34,7 +34,7 @@ public VerenigingWerdToegevoegdAlsDubbelScenario()

public override EventsPerVCode[] Events =>
[
new(DubbeleVerenigingWerdGeregistreerd.VCode, DubbeleVerenigingWerdGeregistreerd, VerenigingWerdGermarkeerdAlsDubbelVan),
new(AuthentiekeVerenigingWerdGeregistreerd.VCode, AuthentiekeVerenigingWerdGeregistreerd, VerenigingAanvaardeDubbeleVereniging),
new(DubbeleVerenigingWerdGeregistreerd.VCode, DubbeleVerenigingWerdGeregistreerd, VerenigingWerdGemarkeerdAlsDubbelVan),
new(AuthentiekeVerenigingWerdGeregistreerd.VCode, AuthentiekeVerenigingWerdGeregistreerd, VerenigingAanvaarddeDubbeleVereniging),
];
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ public class VerenigingWerdGemarkeerdAlsDubbelVanScenario : ScenarioBase
{
public FeitelijkeVerenigingWerdGeregistreerd DubbeleVerenigingWerdGeregistreerd { get; }
public FeitelijkeVerenigingWerdGeregistreerd AuthentiekeVerenigingWerdGeregistreerd { get; }
public VerenigingWerdGermarkeerdAlsDubbelVan VerenigingWerdGermarkeerdAlsDubbelVan { get; set; }
public VerenigingAanvaardeDubbeleVereniging VerenigingAanvaardeDubbeleVereniging { get; set; }
public VerenigingWerdGemarkeerdAlsDubbelVan VerenigingWerdGemarkeerdAlsDubbelVan { get; set; }
public VerenigingAanvaarddeDubbeleVereniging VerenigingAanvaarddeDubbeleVereniging { get; set; }

public VerenigingWerdGemarkeerdAlsDubbelVanScenario()
{
DubbeleVerenigingWerdGeregistreerd = AutoFixture.Create<FeitelijkeVerenigingWerdGeregistreerd>();
AuthentiekeVerenigingWerdGeregistreerd = AutoFixture.Create<FeitelijkeVerenigingWerdGeregistreerd>();

VerenigingWerdGermarkeerdAlsDubbelVan = AutoFixture.Create<VerenigingWerdGermarkeerdAlsDubbelVan>() with
VerenigingWerdGemarkeerdAlsDubbelVan = AutoFixture.Create<VerenigingWerdGemarkeerdAlsDubbelVan>() with
{
VCode = DubbeleVerenigingWerdGeregistreerd.VCode,
VCodeAuthentiekeVereniging = AuthentiekeVerenigingWerdGeregistreerd.VCode,
};

VerenigingAanvaardeDubbeleVereniging = AutoFixture.Create<VerenigingAanvaardeDubbeleVereniging>() with
VerenigingAanvaarddeDubbeleVereniging = AutoFixture.Create<VerenigingAanvaarddeDubbeleVereniging>() with
{
VCode = AuthentiekeVerenigingWerdGeregistreerd.VCode,
VCodeDubbeleVereniging = DubbeleVerenigingWerdGeregistreerd.VCode,
Expand All @@ -32,7 +32,7 @@ public VerenigingWerdGemarkeerdAlsDubbelVanScenario()

public override EventsPerVCode[] Events =>
[
new(VCode, DubbeleVerenigingWerdGeregistreerd, VerenigingWerdGermarkeerdAlsDubbelVan),
new(AuthentiekeVerenigingWerdGeregistreerd.VCode, AuthentiekeVerenigingWerdGeregistreerd, VerenigingAanvaardeDubbeleVereniging),
new(VCode, DubbeleVerenigingWerdGeregistreerd, VerenigingWerdGemarkeerdAlsDubbelVan),
new(AuthentiekeVerenigingWerdGeregistreerd.VCode, AuthentiekeVerenigingWerdGeregistreerd, VerenigingAanvaarddeDubbeleVereniging),
];
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ public async Task Then_Throws_InvalidOperationVerenigingKanGeenDubbelWordenVanZi

await sut.Handle(command, CancellationToken.None);

repositoryMock.ShouldHaveSaved(new VerenigingAanvaardeDubbeleVereniging(scenario.VCode, command.VCodeDubbeleVereniging));
repositoryMock.ShouldHaveSaved(new VerenigingAanvaarddeDubbeleVereniging(scenario.VCode, command.VCodeDubbeleVereniging));
}
}

0 comments on commit b1477c9

Please sign in to comment.