test(domain): expiry worker cancels the zaak via the ACL on timeout (refs #106)

S-10c: expiring the aggregate to VERLOPEN is not enough — the ZGW zaak must
also be cancelled through the ACL (§8.1). Adds IAclClient.CancelZaakAsync and
its client/fakes, and asserts the worker cancels a still-open registration's
zaak but leaves an already-resolved one untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
not
2026-07-21 14:36:33 +02:00
co-authored by Claude Opus 4.8
parent 9275cfeecd
commit e31297bd4c
7 changed files with 73 additions and 12 deletions
@@ -9,7 +9,7 @@ namespace Big.Application;
/// nothing of Flowable. The polling loop that feeds it jobs lives in Infrastructure. Mirrors
/// <see cref="OpenZaakWorker"/>.
/// </summary>
public sealed class ExpireRegistrationWorker(IRegistrationStore store)
public sealed class ExpireRegistrationWorker(IRegistrationStore store, IAclClient acl)
{
/// <summary>
/// Process the job. Idempotent and tolerant of races (§8.6, at-least-once delivery): a job whose