Failing infrastructure unit tests (stub HttpMessageHandler, fakes): - FlowableWorkflowClient starts a process with the registrationId variable and returns the instance id; acquires OpenZaakAanmaken jobs (topic/workerId/lock) and parses their registrationId; completes a job with the zaakUrl variable — request URIs match flowable-rest's service/ and external-job-api/ paths. - AclHttpClient POSTs the bsn to the ACL and returns the zaak URL. - InMemoryRegistrationStore saves/reads/upserts by id. - OpenZaakJobProcessor acquires, opens a zaak, completes the job; leaves a failing job uncompleted for redelivery; polls harmlessly when idle. Adapters are stubs so the tests compile and fail on their assertions; the green commit implements them against the REST contract verified on a live Flowable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
1.3 KiB
C#
31 lines
1.3 KiB
C#
using System.Net;
|
|
|
|
namespace Big.Tests;
|
|
|
|
/// <summary>A test double for <see cref="HttpMessageHandler"/> that records the last request and
|
|
/// returns a scripted response — the same approach the ACL gateway tests use.</summary>
|
|
internal sealed class StubHandler(Func<HttpRequestMessage, Task<HttpResponseMessage>> onSend) : HttpMessageHandler
|
|
{
|
|
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken ct)
|
|
=> onSend(request);
|
|
}
|
|
|
|
/// <summary>Captures the request a client sent, including the (buffered) body.</summary>
|
|
internal sealed class RequestCapture
|
|
{
|
|
public HttpRequestMessage? Seen { get; private set; }
|
|
public string? Body { get; private set; }
|
|
|
|
/// <summary>A handler that records the request, then replies with <paramref name="status"/> and
|
|
/// <paramref name="json"/>.</summary>
|
|
public StubHandler Responds(HttpStatusCode status, string? json = null) => new(async req =>
|
|
{
|
|
Seen = req;
|
|
Body = req.Content is null ? null : await req.Content.ReadAsStringAsync();
|
|
var response = new HttpResponseMessage(status);
|
|
if (json is not null)
|
|
response.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
|
|
return response;
|
|
});
|
|
}
|