test(workflow): diploma routing — acceptance + live foreign→CBGV path (S-13, refs #14)
Gherkin scenarios assert the submit carries the diploma origin (domestic/foreign) into the process. verify-domain now submits a foreign registration and asserts it parks at CBGVAdvies before Beoordelen, completes CBGV, then advances to Beoordelen — exercising both DMN branches through the engine (the domestic DIRECT path is the first registration already parking straight at Beoordelen). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
36
tests/acceptance/Steps/EenDiplomaRouterenSteps.cs
Normal file
36
tests/acceptance/Steps/EenDiplomaRouterenSteps.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using Acceptance.Support;
|
||||
using Big.Application;
|
||||
using Big.Domain;
|
||||
using Reqnroll;
|
||||
using Xunit;
|
||||
|
||||
namespace Acceptance.Steps;
|
||||
|
||||
/// <summary>Bindings for <c>EenDiplomaRouteren.feature</c> (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.</summary>
|
||||
[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<DiplomaOrigin>(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<DiplomaOrigin>(expected, ignoreCase: true), _workflow.StartedWithOrigin);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user