public async Task ShouldReturnListOfPatientDto() { //Given var openmrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClientMock.Object); openmrsClientMock .Setup(x => x.GetAsync(Endpoints.Fhir.OnPatientPath)) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(PatientSample) }) .Verifiable(); //When var patients = await discoveryDataSource.LoadPatientsAsync(null, null, null); //Then var firstPatient = patients[0]; firstPatient.Name[0].GivenElement.First().ToString().Should().Be("Test"); firstPatient.Gender.Should().Be(AdministrativeGender.Female); firstPatient.BirthDate.Should().Be("1982-05-05"); var secondPatient = patients[1]; secondPatient.Name[0].GivenElement.First().ToString().Should().Be("David"); secondPatient.Gender.Should().Be(AdministrativeGender.Male); secondPatient.BirthDate.Should().Be("1997-04-10"); }
public async Task ShouldReturnEmptyListIfAllResourcesAreDifferentFromPatient() { //Given var openMrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openMrsClientMock.Object); openMrsClientMock .Setup(x => x.GetAsync(Endpoints.Fhir.OnPatientPath)) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(PersonsSample) }) .Verifiable(); //When var patients = await discoveryDataSource.LoadPatientsAsync(null, null, null); //Then patients.Should().BeEmpty(); }
public async Task ShouldReturnEmptyListWhenGotNoRecord() { //Given var openmrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClientMock.Object); openmrsClientMock .Setup(x => x.GetAsync(Endpoints.Fhir.OnPatientPath)) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(NotFoundData) }) .Verifiable(); //When var patients = await discoveryDataSource.LoadPatientsAsync(null, null, null); //Then patients.Count.Should().Be(0); patients.Should().BeEmpty(); }
public async Task ShouldQueryDataSourceByNameAccordingToTheFilter( string expectedPath, string name, AdministrativeGender?gender, string yearOfBrith) { //Given var openmrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClientMock.Object); openmrsClientMock .Setup(x => x.GetAsync(It.IsAny <string>())) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(PatientSample) }) .Verifiable(); //When var patients = await discoveryDataSource.LoadPatientsAsync(name, gender, yearOfBrith); //Then openmrsClientMock.Verify(client => client.GetAsync(expectedPath), Times.Once); }
public async System.Threading.Tasks.Task LoadPatientAsync_ShouldReturnError_WhenFound() { //Given var openmrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClientMock.Object); var invalidPatientId = "000000000"; var path = $"{Endpoints.Fhir.OnPatientPath}/{invalidPatientId}"; openmrsClientMock .Setup(x => x.GetAsync(path)) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.NotFound, Content = new StringContent(PatientNotFoundData) }) .Verifiable(); //When var patient = await discoveryDataSource.LoadPatientAsync(invalidPatientId); //Then patient.Name.Should().BeEmpty(); patient.Gender.Should().Be(null); }
public async System.Threading.Tasks.Task LoadPatientAsyncWithIndentifier_ShouldReturnPatient_WhenFound() { //Given var openmrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClientMock.Object); var identifier = "GAN203007"; var path = $"{Endpoints.Fhir.OnPatientPath}/?identifier={identifier}"; openmrsClientMock .Setup(x => x.GetAsync(path)) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(BundleSampleWithOnePatientRecord) }) .Verifiable(); //When var patient = await discoveryDataSource.LoadPatientAsyncWithIndentifier(identifier); //Then Assert.NotNull(patient); patient.Name[0].GivenElement.First().ToString().Should().Be("David"); }
public async System.Threading.Tasks.Task LoadPatientAsync_ShouldReturnPatient_WhenFound() { //Given var openmrsClientMock = new Mock <IOpenMrsClient>(); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClientMock.Object); var patientId = "95db77c6-cc8a-4208-99cc-c69a207114a3"; var path = $"{Endpoints.Fhir.OnPatientPath}/{patientId}"; openmrsClientMock .Setup(x => x.GetAsync(path)) .ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(SamplePatient) }) .Verifiable(); //When var patient = await discoveryDataSource.LoadPatientAsync(patientId); //Then Assert.NotNull(patient); patient.Name[0].GivenElement.First().ToString().Should().Be("test"); }
public async Task ShouldGetPatientDataRealCallAsync() { //Given // Disable SSL verification in test only var handler = new HttpClientHandler() { ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator }; var httpClient = new HttpClient(handler); var openmrsConfiguration = new OpenMrsConfiguration { Url = "https://someurl/openmrs/", Username = "******", Password = "******" }; var openmrsClient = new OpenMrsClient(httpClient, openmrsConfiguration); var discoveryDataSource = new FhirDiscoveryDataSource(openmrsClient); //When var patients = await discoveryDataSource.LoadPatientsAsync(null, null, null); //Then patients.Should().NotBeEmpty(); }