test(workflow): start carries diploma origin as a process variable (S-13, refs #14)
Add DiplomaOrigin (Binnenlands/Buitenlands) to the Registration aggregate and submit command, and thread it through the process-start port so the workflow's DMN can route on it (ADR proposal #100). Failing Workflow Client test asserts the diplomaOrigin start variable; the client takes the origin but does not emit it yet. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,7 +24,7 @@ public class FlowableWorkflowClientTests
|
||||
var client = Client(capture.Responds(HttpStatusCode.Created, """{"id":"pi-1"}"""));
|
||||
var rid = RegistrationId.New();
|
||||
|
||||
var pid = await client.StartRegistrationProcessAsync(rid);
|
||||
var pid = await client.StartRegistrationProcessAsync(rid, DiplomaOrigin.Binnenlands);
|
||||
|
||||
Assert.Equal("pi-1", pid);
|
||||
Assert.Equal(HttpMethod.Post, capture.Seen!.Method);
|
||||
@@ -38,6 +38,22 @@ public class FlowableWorkflowClientTests
|
||||
Assert.Contains($"\"value\":\"{rid}\"", capture.Body);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(DiplomaOrigin.Binnenlands, "Binnenlands")]
|
||||
[InlineData(DiplomaOrigin.Buitenlands, "Buitenlands")]
|
||||
public async Task Start_posts_the_diploma_origin_as_a_process_variable(DiplomaOrigin origin, string expected)
|
||||
{
|
||||
// The diploma origin rides along as a start variable so the workflow's DMN can route foreign
|
||||
// diplomas through CBGV-advies (S-13, ADR-0016).
|
||||
var capture = new RequestCapture();
|
||||
var client = Client(capture.Responds(HttpStatusCode.Created, """{"id":"pi-1"}"""));
|
||||
|
||||
await client.StartRegistrationProcessAsync(RegistrationId.New(), origin);
|
||||
|
||||
Assert.Contains("\"name\":\"diplomaOrigin\"", capture.Body);
|
||||
Assert.Contains($"\"value\":\"{expected}\"", capture.Body);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Start_uses_the_configured_worker_credentials_and_defaults()
|
||||
{
|
||||
@@ -125,7 +141,7 @@ public class FlowableWorkflowClientTests
|
||||
var client = Client(capture.Responds(HttpStatusCode.InternalServerError));
|
||||
|
||||
await Assert.ThrowsAsync<HttpRequestException>(
|
||||
() => client.StartRegistrationProcessAsync(RegistrationId.New()));
|
||||
() => client.StartRegistrationProcessAsync(RegistrationId.New(), DiplomaOrigin.Binnenlands));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -135,7 +151,7 @@ public class FlowableWorkflowClientTests
|
||||
var client = Client(capture.Responds(HttpStatusCode.Created, "null"));
|
||||
|
||||
var ex = await Assert.ThrowsAsync<InvalidOperationException>(
|
||||
() => client.StartRegistrationProcessAsync(RegistrationId.New()));
|
||||
() => client.StartRegistrationProcessAsync(RegistrationId.New(), DiplomaOrigin.Binnenlands));
|
||||
Assert.Contains("empty process-instance", ex.Message);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user