public void ShouldException() { var handlerMock = new Mock <HttpMessageHandler>(); handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .Throws <HttpRequestException>() .Verifiable(); using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); Mock <IHttpClientService> mockHttpClientService = new Mock <IHttpClientService>(); mockHttpClientService.Setup(s => s.CreateDefaultHttpClient()).Returns(() => new HttpClient(handlerMock.Object)); IMSPVisitDelegate mspVisitDelegate = new RestMSPVisitDelegate( loggerFactory.CreateLogger <RestMSPVisitDelegate>(), mockHttpClientService.Object, this.configuration); ODRHistoryQuery query = new ODRHistoryQuery() { PHN = "123456789", }; RequestResult <MSPVisitHistoryResponse> actualResult = Task.Run(async() => await mspVisitDelegate.GetMSPVisitHistoryAsync(query, string.Empty, string.Empty)).Result; Assert.True(actualResult.ResultStatus == Common.Constants.ResultType.Error && actualResult.ResultError.ErrorCode == "testhostServer-CE-ODR"); }
/// <inheritdoc/> public async Task <RequestResult <IEnumerable <EncounterModel> > > GetEncounters(string hdid) { using (Source.StartActivity("GetEncounters")) { this.logger.LogDebug("Getting encounters"); this.logger.LogTrace($"User hdid: {hdid}"); RequestResult <IEnumerable <EncounterModel> > result = new RequestResult <IEnumerable <EncounterModel> >(); // Retrieve the phn RequestResult <PatientModel> patientResult = await this.patientService.GetPatient(hdid).ConfigureAwait(true); if (patientResult.ResultStatus == ResultType.Success && patientResult.ResourcePayload != null) { PatientModel patient = patientResult.ResourcePayload; ODRHistoryQuery mspHistoryQuery = new ODRHistoryQuery() { StartDate = patient.Birthdate, EndDate = System.DateTime.Now, PHN = patient.PersonalHealthNumber, PageSize = 20000, }; IPAddress address = this.httpContextAccessor.HttpContext !.Connection.RemoteIpAddress !; string ipv4Address = address.MapToIPv4().ToString(); RequestResult <MSPVisitHistoryResponse> response = await this.mspVisitDelegate.GetMSPVisitHistoryAsync(mspHistoryQuery, hdid, ipv4Address).ConfigureAwait(true); result.ResultStatus = response.ResultStatus; result.ResultError = response.ResultError; if (response.ResultStatus == ResultType.Success) { result.PageSize = mspHistoryQuery.PageSize; result.PageIndex = mspHistoryQuery.PageNumber; if (response.ResourcePayload != null && response.ResourcePayload.Claims != null) { result.TotalResultCount = response.ResourcePayload.TotalRecords; result.ResourcePayload = EncounterModel.FromODRClaimModelList(response.ResourcePayload.Claims.ToList()); } else { result.ResourcePayload = new List <EncounterModel>(); } } } else { result.ResultError = patientResult.ResultError; } this.logger.LogDebug($"Finished getting history of medication statements"); return(result); } }
public void ShouldErrorDynamicLookup() { var handlerMock = new Mock <HttpMessageHandler>(); handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.Unauthorized, Content = new StringContent(string.Empty), }) .Verifiable(); using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); Mock <IHttpClientService> mockHttpClientService = new Mock <IHttpClientService>(); mockHttpClientService.Setup(s => s.CreateDefaultHttpClient()).Returns(() => new HttpClient(handlerMock.Object)); var myConfiguration = new Dictionary <string, string> { { "ODR:DynamicServiceLookup", "True" }, { "ODR:BaseEndpoint", "http://mockendpoint/" }, }; var localConfig = new ConfigurationBuilder() .AddInMemoryCollection(myConfiguration) .Build(); IMSPVisitDelegate mspVisitDelegate = new RestMSPVisitDelegate( loggerFactory.CreateLogger <RestMSPVisitDelegate>(), mockHttpClientService.Object, localConfig); ODRHistoryQuery query = new ODRHistoryQuery() { PHN = "123456789", }; RequestResult <MSPVisitHistoryResponse> actualResult = Task.Run(async() => await mspVisitDelegate.GetMSPVisitHistoryAsync(query, string.Empty, string.Empty)).Result; Assert.Equal(Common.Constants.ResultType.Error, actualResult.ResultStatus); }
public void ShouldGetMSPVisits() { string content = @" { ""uuid"": ""7c51465c-7a7d-489f-b186-8755ae094d09"", ""hdid"": ""P6FFO433A5WPMVTGM7T4ZVWBKCSVNAYGTWTU3J2LWMGUMERKI72A"", ""getMspVisitHistoryResponse"": { ""totalRecords"": 1, ""totalPages"": 1, ""claims"": [ { ""claimId"": 1, ""serviceDate"": ""2020-05-27"", ""feeDesc"": ""TACROLIMUS"", ""diagnosticCode"": { ""diagCode1"": ""01L"", ""diagCode2"": ""02L"", ""diagCode3"": ""03L"" }, ""specialtyDesc"": ""LABORATORY MEDICINE"", ""practitionerName"": ""PRACTITIONER NAME"", ""locationName"": ""PAYEE NAME"", ""locationAddress"": { ""addrLine1"": ""address line 1"", ""addrLine2"": ""address line 2"", ""addrLine3"": ""address line 3"", ""addrLine4"": ""address line 4"", ""city"": ""city"", ""postalCode"": ""V9V9V9"", ""province"": ""BC"" } }] } }"; var handlerMock = new Mock <HttpMessageHandler>(); handlerMock .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(content), }) .Verifiable(); using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); Mock <IHttpClientService> mockHttpClientService = new Mock <IHttpClientService>(); mockHttpClientService.Setup(s => s.CreateDefaultHttpClient()).Returns(() => new HttpClient(handlerMock.Object)); IMSPVisitDelegate mspVisitDelegate = new RestMSPVisitDelegate( loggerFactory.CreateLogger <RestMSPVisitDelegate>(), mockHttpClientService.Object, this.configuration); ODRHistoryQuery query = new ODRHistoryQuery() { PHN = "123456789", }; RequestResult <MSPVisitHistoryResponse> actualResult = Task.Run(async() => await mspVisitDelegate.GetMSPVisitHistoryAsync(query, string.Empty, string.Empty)).Result; Assert.Equal(Common.Constants.ResultType.Success, actualResult.ResultStatus); Assert.Single(actualResult.ResourcePayload.Claims); Assert.Equal(1, actualResult.TotalResultCount); }