using Acceptance.Support; using Big.Application; using Big.Domain; using Reqnroll; using Xunit; namespace Acceptance.Steps; /// Bindings for EenDiplomaRouteren.feature (S-13). Drives the submit use case against /// in-memory ports and asserts the registratie process is started carrying the diploma origin — the /// domain's contribution to flow 4. The DMN evaluation and the foreign→CBGV-advies routing it drives /// are verified live (verify-domain); one instance per scenario. [Binding] [Scope(Feature = "Een diploma op herkomst routeren")] public sealed class EenDiplomaRouterenSteps { private readonly InMemoryRegistrationStore _store = new(); private readonly InMemoryWorkflowClient _workflow = new(); private DiplomaOrigin _origin; [Given("a zorgprofessional with a \"(.*)\" diploma")] public void GivenAZorgprofessionalWithADiploma(string origin) => _origin = Enum.Parse(origin, ignoreCase: true); [When("they submit their registration")] public async Task WhenTheySubmitTheirRegistration() => await new SubmitRegistration(_store, _workflow).HandleAsync( new SubmitRegistrationCommand("123456782", _origin)); [Then("the registratie process is started carrying a \"(.*)\" diploma")] public void ThenTheProcessIsStartedCarryingTheDiploma(string expected) { Assert.NotNull(_workflow.StartedFor); Assert.Equal(Enum.Parse(expected, ignoreCase: true), _workflow.StartedWithOrigin); } }