From 8f1a5f20055011aeb1da082ab9449be7ce1f116d Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Fri, 7 Feb 2025 07:58:29 -0800 Subject: [PATCH] Add another test --- .../Rest/BulkDeleteTests.cs | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/BulkDeleteTests.cs b/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/BulkDeleteTests.cs index 401c74cc88..1553df42b1 100644 --- a/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/BulkDeleteTests.cs +++ b/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/BulkDeleteTests.cs @@ -265,6 +265,50 @@ public async Task GivenBulkDeleteJobWithRevincludeSearch_WhenCompleted_ThenInclu await MonitorBulkDeleteJob(response.Content.Headers.ContentLocation, resourceTypes); } + [SkippableFact] + public async Task GivenBulkHardDeleteJobWithIncludeSearch_WhenCompleted_ThenIncludedResourcesAreDeleted() + { + CheckBulkDeleteEnabled(); + + var resourceTypes = new Dictionary() + { + { "Patient", 1 }, + { "Observation", 1 }, + }; + + string tag = Guid.NewGuid().ToString(); + var patient = (await _fhirClient.CreateResourcesAsync(1, tag)).FirstOrDefault(); + + var observation = Activator.CreateInstance(); + observation.Meta = new Meta() + { + Tag = new List + { + new Coding("testTag", tag), + }, + }; + observation.Subject = new ResourceReference("Patient/" + patient.Id); + observation.Status = ObservationStatus.Final; + observation.Code = new CodeableConcept("test", "test"); + + await _fhirClient.CreateAsync(observation); + + await Task.Delay(5000); // Add delay to ensure resources are created before bulk delete + + using HttpRequestMessage request = GenerateBulkDeleteRequest( + tag, + "Observation/$bulk-delete", + queryParams: new Dictionary + { + { "_include", "Observation:subject" }, + { KnownQueryParameterNames.BulkHardDelete, "true" }, + }); + + using HttpResponseMessage response = await _httpClient.SendAsync(request); + Assert.Equal(HttpStatusCode.Accepted, response.StatusCode); + await MonitorBulkDeleteJob(response.Content.Headers.ContentLocation, resourceTypes); + } + private async Task RunBulkDeleteRequest( Dictionary expectedResults, bool addUndeletedResource = false, @@ -282,7 +326,7 @@ private async Task RunBulkDeleteRequest( await _fhirClient.CreateResourcesAsync(ModelInfoProvider.GetTypeForFhirType(key), (int)expectedResults[key], tag); } - await Task.Delay(5000); // Add delay to ensure resources are created before bulk delete + await Task.Delay(2000); // Add delay to ensure resources are created before bulk delete using HttpRequestMessage request = GenerateBulkDeleteRequest(tag, path, queryParams);