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");
        }
Esempio n. 2
0
        /// <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);
        }