test(acl): approval writes the RegisterRecord to Objecten (refs #149)
Ports and failing tests for the Objecten hop, ahead of the implementation: - IRegisterRecordGateway + RegisterRecord — the Application-side port; the record mirrors the objecttype schema registered in S-18c (ADR-0027). - AclService takes the port but does not yet call it, so the approval test fails on an empty upsert list. - ObjectenGateway is a shell throwing NotImplementedException; its tests pin the contract: resolve the objecttype by name, search by data attribute, POST when absent / PATCH when present, static Token auth per API, the CRS headers the geo API requires, and a surfaced error body. Also splits S-19 (#20) into #149/#150 in BACKLOG.md — the approval-side write and the projection re-sourcing are independently deployable (CLAUDE.md §13).
This commit is contained in:
@@ -53,3 +53,16 @@ public sealed class InMemoryZaakGateway : IZaakGateway
|
||||
=> Task.FromResult<IReadOnlyList<ZaaktypeSummary>>(
|
||||
[new ZaaktypeSummary("BIG-REGISTRATIE", "BIG-registratie", ResolvedZaaktypeUrl)]);
|
||||
}
|
||||
|
||||
/// <summary>An in-memory stand-in for the Objecten API (S-19a): records the register records the ACL
|
||||
/// writes on approval, so a scenario can assert on them without a running Objecten.</summary>
|
||||
public sealed class InMemoryRegisterRecordGateway : IRegisterRecordGateway
|
||||
{
|
||||
public List<RegisterRecord> Upserted { get; } = [];
|
||||
|
||||
public Task UpsertAsync(RegisterRecord record, CancellationToken ct = default)
|
||||
{
|
||||
Upserted.Add(record);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user