public async Task PostPatientReturnsSuccessCodeAndResourceWithAccurateFields() { // Arrange var client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false }); var fakePatient = new FakePatientDto().Generate(); dynamic data = new ExpandoObject(); data.sub = Guid.NewGuid(); data.scope = new[] { "patients.add" }; client.SetFakeBearerToken((object)data); // Act var httpResponse = await client.PostAsJsonAsync("api/Patients", fakePatient) .ConfigureAwait(false); // Assert httpResponse.EnsureSuccessStatusCode(); var resultDto = JsonConvert.DeserializeObject <Response <PatientDto> >(await httpResponse.Content.ReadAsStringAsync() .ConfigureAwait(false)); httpResponse.StatusCode.Should().Be(201); resultDto.Data.FirstName.Should().Be(fakePatient.FirstName); resultDto.Data.LastName.Should().Be(fakePatient.LastName); resultDto.Data.Sex.Should().Be(fakePatient.Sex); resultDto.Data.Gender.Should().Be(fakePatient.Gender); resultDto.Data.Race.Should().Be(fakePatient.Race); resultDto.Data.Ethnicity.Should().Be(fakePatient.Ethnicity); }
public async Task PostPatientReturnsSuccessCodeAndResourceWithAccurateFields_WithAuth() { // Arrange var client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false }); var fakePatient = new FakePatientDto().Generate(); client.AddAuth(new[] { "patients.add" }); // Act var httpResponse = await client.PostAsJsonAsync("api/Patients", fakePatient) .ConfigureAwait(false); // Assert httpResponse.EnsureSuccessStatusCode(); var resultDto = JsonConvert.DeserializeObject <Response <PatientDto> >(await httpResponse.Content.ReadAsStringAsync() .ConfigureAwait(false)); httpResponse.StatusCode.Should().Be(201); resultDto.Data.ExternalId.Should().Be(fakePatient.ExternalId); resultDto.Data.InternalId.Should().Be(fakePatient.InternalId); resultDto.Data.FirstName.Should().Be(fakePatient.FirstName); resultDto.Data.LastName.Should().Be(fakePatient.LastName); resultDto.Data.Dob.Should().Be(fakePatient.Dob); resultDto.Data.Sex.Should().Be(fakePatient.Sex); resultDto.Data.Gender.Should().Be(fakePatient.Gender); resultDto.Data.Race.Should().Be(fakePatient.Race); resultDto.Data.Ethnicity.Should().Be(fakePatient.Ethnicity); }
public async Task PostPatients_Returns_Unauthorized_Without_Valid_Token() { // Arrange var client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false }); var fakePatient = new FakePatientDto().Generate(); // Act var httpResponse = await client.PostAsJsonAsync("api/Patients", fakePatient) .ConfigureAwait(false); // Assert httpResponse.StatusCode.Should().Be(401); }
public async Task PostPatient_Returns_Forbidden_Without_Proper_Scope() { // Arrange var client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false }); var fakePatient = new FakePatientDto().Generate(); client.AddAuth(new[] { "" }); // Act var httpResponse = await client.PostAsJsonAsync("api/Patients", fakePatient) .ConfigureAwait(false); // Assert httpResponse.StatusCode.Should().Be(403); }