Skip to content

Commit

Permalink
feat: or-1716 implement beheer detail for correctie dubbels
Browse files Browse the repository at this point in the history
  • Loading branch information
emalfroy committed Jan 6, 2025
1 parent 956fe52 commit fb5658e
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,16 @@ public async Task Project(IEvent<VerenigingWerdGemarkeerdAlsDubbelVan> @event, I

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

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

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

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

private async Task SoftDelete(string? streamKey, IDocumentOperations ops)
=> ops.Delete<BeheerVerenigingDetailDocument>(streamKey);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -770,4 +770,18 @@ public static void Apply(IEvent<WeigeringDubbelDoorAuthentiekeVerenigingWerdVerw
document.Status = weigeringDubbelDoorAuthentiekeVerenigingWerdVerwerkt.Data.VorigeStatus;
document.IsDubbelVan = string.Empty;
}

public static void Apply(IEvent<MarkeringDubbeleVerengingWerdGecorrigeerd> markeringDubbeleVerengingWerdGecorrigeerd, BeheerVerenigingDetailDocument document)
{
document.Status = markeringDubbeleVerengingWerdGecorrigeerd.Data.VorigeStatus;
document.IsDubbelVan = string.Empty;
}

public static void Apply(IEvent<VerenigingAanvaarddeCorrectieDubbeleVereniging> verenigingAanvaarddeCorrectieDubbeleVereniging, BeheerVerenigingDetailDocument document)
{
document.CorresponderendeVCodes =
document.CorresponderendeVCodes
.Where(x => x != verenigingAanvaarddeCorrectieDubbeleVereniging.Data.VCodeDubbeleVereniging)
.ToArray();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ public void With_Status_Is_Actief()
Response.Vereniging.Status.Should().Be(VerenigingStatus.Actief);
}

public DetailVerenigingResponse Response { get; set; }

public override Func<IApiSetup, DetailVerenigingResponse> GetResponse
=> setup => setup.AdminApiHost.GetBeheerDetail(_context.Scenario.AuthentiekeVereniging.VCode);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ public void Document_IsDubbelVan_Is_Updated()

[Fact]
public void Document_Status_Is_Dubbel()
=> fixture.Result.Status.Should().Be(VerenigingStatus.Actief);
=> fixture.Result.Status.Should().Be(fixture.Scenario.MarkeringDubbeleVerengingWerdGecorrigeerd.VorigeStatus);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
namespace AssociationRegistry.Test.Projections.Beheer.Detail.Dubbels;


[Collection(nameof(ProjectionContext))]
public class Given_VerenigingAanvaarddeCorrectieDubbeleVereniging(BeheerDetailScenarioFixture<VerenigingAanvaarddeCorrectieDubbeleVerenigingScenario> fixture)
: BeheerDetailScenarioClassFixture<VerenigingAanvaarddeCorrectieDubbeleVerenigingScenario>
{
[Fact]
public void Metadata_Is_Updated()
=> fixture.Result
.Metadata.Version.Should().Be(3);

[Fact]
public void Document_Has_DubbeleVereniging_In_CorresponderendeVCodes()
=> fixture.Result.CorresponderendeVCodes.Should().NotContain(fixture.Scenario.DubbeleVerenigingWerdGeregistreerd.VCode);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
namespace AssociationRegistry.Test.Projections.Scenario;

using AutoFixture;
using Events;

public class VerenigingAanvaarddeCorrectieDubbeleVerenigingScenario : InszScenarioBase
{
public FeitelijkeVerenigingWerdGeregistreerd DubbeleVerenigingWerdGeregistreerd { get; }
public FeitelijkeVerenigingWerdGeregistreerd AuthentiekeVerenigingWerdGeregistreerd { get; }
public VerenigingWerdGemarkeerdAlsDubbelVan VerenigingWerdGemarkeerdAlsDubbelVan { get; set; }
public VerenigingAanvaarddeDubbeleVereniging VerenigingAanvaarddeDubbeleVereniging { get; set; }
public MarkeringDubbeleVerengingWerdGecorrigeerd MarkeringDubbeleVerengingWerdGecorrigeerd { get; set; }
public VerenigingAanvaarddeCorrectieDubbeleVereniging VerenigingAanvaarddeCorrectieDubbeleVereniging { get; set; }

private string _insz { get; }
public VerenigingAanvaarddeCorrectieDubbeleVerenigingScenario()
{

DubbeleVerenigingWerdGeregistreerd = AutoFixture.Create<FeitelijkeVerenigingWerdGeregistreerd>();

AuthentiekeVerenigingWerdGeregistreerd = AutoFixture.Create<FeitelijkeVerenigingWerdGeregistreerd>()
with
{
Vertegenwoordigers = DubbeleVerenigingWerdGeregistreerd.Vertegenwoordigers,
};

_insz = AuthentiekeVerenigingWerdGeregistreerd.Vertegenwoordigers[0].Insz;

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

VerenigingAanvaarddeDubbeleVereniging = AutoFixture.Create<VerenigingAanvaarddeDubbeleVereniging>() with
{
VCode = AuthentiekeVerenigingWerdGeregistreerd.VCode,
VCodeDubbeleVereniging = DubbeleVerenigingWerdGeregistreerd.VCode,
};

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

VerenigingAanvaarddeCorrectieDubbeleVereniging = AutoFixture.Create<VerenigingAanvaarddeCorrectieDubbeleVereniging>() with
{
VCode = AuthentiekeVerenigingWerdGeregistreerd.VCode,
VCodeDubbeleVereniging = DubbeleVerenigingWerdGeregistreerd.VCode,
};
}

public override string VCode => DubbeleVerenigingWerdGeregistreerd.VCode;

public override EventsPerVCode[] Events =>
[
new(VCode, DubbeleVerenigingWerdGeregistreerd, VerenigingWerdGemarkeerdAlsDubbelVan, MarkeringDubbeleVerengingWerdGecorrigeerd),
new(AuthentiekeVerenigingWerdGeregistreerd.VCode, AuthentiekeVerenigingWerdGeregistreerd, VerenigingAanvaarddeDubbeleVereniging, VerenigingAanvaarddeCorrectieDubbeleVereniging),
];

public override string Insz => _insz;
}

0 comments on commit fb5658e

Please sign in to comment.