public async Task GivenADeleteResourceRequest_WhenDeletingAResourceOtherThanSearchParameter_ThenNoCallToDeleteParameterMade() { var resource = Samples.GetDefaultObservation().UpdateId("id1"); var key = new ResourceKey("Observation", "id1"); var request = new DeleteResourceRequest(key, DeleteOperation.SoftDelete); var wrapper = CreateResourceWrapper(resource, false); _fhirDataStore.GetAsync(key, Arg.Any <CancellationToken>()).Returns(wrapper); var response = new DeleteResourceResponse(key); var behavior = new DeleteSearchParameterBehavior <DeleteResourceRequest, DeleteResourceResponse>(_searchParameterOperations, _fhirDataStore); await behavior.Handle(request, CancellationToken.None, async() => await Task.Run(() => response)); // Ensure for non-SearchParameter, that we do not call Add SearchParameter await _searchParameterOperations.DidNotReceive().DeleteSearchParameterAsync(Arg.Any <RawResource>()); }
public async Task GivenADeleteResourceRequest_WhenDeletingAnAlreadyDeletedSearchParameterResource_TheDeleteSearchParameterShouldNotBeCalled() { var searchParameter = new SearchParameter() { Id = "Id" }; var resource = searchParameter.ToTypedElement().ToResourceElement(); var key = new ResourceKey("SearchParameter", "Id"); var request = new DeleteResourceRequest(key, DeleteOperation.SoftDelete); var wrapper = CreateResourceWrapper(resource, true); _fhirDataStore.GetAsync(key, Arg.Any <CancellationToken>()).Returns(wrapper); var response = new DeleteResourceResponse(key); var behavior = new DeleteSearchParameterBehavior <DeleteResourceRequest, DeleteResourceResponse>(_searchParameterOperations, _fhirDataStore); await behavior.Handle(request, CancellationToken.None, async() => await Task.Run(() => response)); await _searchParameterOperations.DidNotReceive().DeleteSearchParameterAsync(Arg.Any <RawResource>()); }