public async Task GivenAnExistingResource_WhenUpdated_ThenAuditLogEntriesShouldBeCreated() { await ExecuteAndValidate( async() => { FhirResponse <Patient> result = await _client.CreateAsync(Samples.GetDefaultPatient().ToPoco <Patient>()); result.Resource.Name.Add(new HumanName() { Family = "Anderson" }); return(await _client.UpdateAsync <Patient>(result)); }, "update", ResourceType.Patient, p => $"Patient/{p.Id}", HttpStatusCode.OK); }
public async Task WhenUpdatingAResource_GivenAUserWithUpdatePermissions_TheServerShouldReturnSuccess() { FhirClient tempClient = Client.CreateClientForUser(TestUsers.AdminUser, TestApplications.NativeClient); Observation createdResource = await tempClient.CreateAsync(Samples.GetDefaultObservation().ToPoco <Observation>()); tempClient = Client.CreateClientForUser(TestUsers.ReadWriteUser, TestApplications.NativeClient); FhirResponse <Observation> updateResponse = await tempClient.UpdateAsync(createdResource); Assert.Equal(System.Net.HttpStatusCode.OK, updateResponse.StatusCode); Observation updatedResource = updateResponse.Resource; Assert.NotNull(updatedResource); Assert.Equal(createdResource.Id, updatedResource.Id); Assert.NotEqual(createdResource.Meta.VersionId, updatedResource.Meta.VersionId); Assert.NotEqual(createdResource.Meta.LastUpdated, updatedResource.Meta.LastUpdated); }
public async Task WhenUpdatingAResource_GivenAUserWithNoWritePermissions_TheServerShouldReturnForbidden() { FhirClient tempClient = Client.CreateClientForUser(TestUsers.WriteOnlyUser, TestApplications.NativeClient); Observation createdResource = await tempClient.CreateAsync(Samples.GetDefaultObservation().ToPoco <Observation>()); tempClient = Client.CreateClientForUser(TestUsers.ReadOnlyUser, TestApplications.NativeClient); FhirException fhirException = await Assert.ThrowsAsync <FhirException>(async() => await tempClient.UpdateAsync(createdResource)); Assert.Equal(ForbiddenMessage, fhirException.Message); Assert.Equal(HttpStatusCode.Forbidden, fhirException.StatusCode); }