diff --git a/tests/acceptance/Features/EenDocumentTermijnVerlopen.feature b/tests/acceptance/Features/EenDocumentTermijnVerlopen.feature index 7ec02bf..9158d90 100644 --- a/tests/acceptance/Features/EenDocumentTermijnVerlopen.feature +++ b/tests/acceptance/Features/EenDocumentTermijnVerlopen.feature @@ -14,6 +14,7 @@ Feature: Een documenttermijn laten verlopen When the 30-day document timer fires And the document-timeout worker runs Then the registration is verlopen + And the zaak is cancelled in ZGW Scenario: Tijdig aangeleverde documenten laten de registratie niet vervallen Given a registration parked at the WachtOpDocumenten task @@ -21,3 +22,4 @@ Feature: Een documenttermijn laten verlopen And the 30-day document timer fires And the document-timeout worker runs Then the registration is not verlopen + And the zaak is not cancelled in ZGW diff --git a/tests/acceptance/Steps/EenDocumentTermijnVerlopenSteps.cs b/tests/acceptance/Steps/EenDocumentTermijnVerlopenSteps.cs index 402cfde..59ebdee 100644 --- a/tests/acceptance/Steps/EenDocumentTermijnVerlopenSteps.cs +++ b/tests/acceptance/Steps/EenDocumentTermijnVerlopenSteps.cs @@ -17,8 +17,11 @@ namespace Acceptance.Steps; [Scope(Feature = "Een documenttermijn laten verlopen")] public sealed class EenDocumentTermijnVerlopenSteps { + private static readonly Uri ZaakUrl = new("http://openzaak/zaken/api/v1/zaken/acc-timeout"); + private readonly InMemoryDocumentTimeoutClient _flowable = new(); private readonly Support.InMemoryRegistrationStore _store = new(); + private readonly InMemoryAclClient _acl = new(); private Registration _registration = null!; private string _processInstanceId = ""; @@ -26,6 +29,9 @@ public sealed class EenDocumentTermijnVerlopenSteps public async Task GivenARegistrationParkedAtWachtOpDocumenten() { _registration = Registration.Submit("123456782"); + // By the time it parks at WachtOpDocumenten its zaak has been opened (OpenZaakAanmaken runs + // earlier), so a timeout has a zaak to cancel. + _registration.AttachZaak(ZaakUrl); await _store.SaveAsync(_registration); _processInstanceId = _flowable.ParkWaitingForDocuments(_registration.Id); } @@ -39,7 +45,7 @@ public sealed class EenDocumentTermijnVerlopenSteps [When("the document-timeout worker runs")] public async Task WhenTheTimeoutWorkerRuns() => await new RegistratieVerlopenProcessor( - _flowable, new ExpireRegistrationWorker(_store), + _flowable, new ExpireRegistrationWorker(_store, _acl), NullLogger.Instance).PumpOnceAsync(5); [Then("the registration is verlopen")] @@ -49,4 +55,10 @@ public sealed class EenDocumentTermijnVerlopenSteps [Then("the registration is not verlopen")] public async Task ThenTheRegistrationIsNotVerlopen() => Assert.Equal(RegistrationStatus.Ingediend, (await _store.GetAsync(_registration.Id))!.Status); + + [Then("the zaak is cancelled in ZGW")] + public void ThenTheZaakIsCancelled() => Assert.Equal(ZaakUrl, _acl.CancelledZaakUrl); + + [Then("the zaak is not cancelled in ZGW")] + public void ThenTheZaakIsNotCancelled() => Assert.Null(_acl.CancelledZaakUrl); }