/// <inheritdoc/> public async Task <RequestResult <ImmunizationResult> > GetImmunizations(string bearerToken, int pageIndex = 0) { RequestResult <PHSAResult <ImmunizationResponse> > delegateResult = await this.immunizationDelegate.GetImmunizations(bearerToken, pageIndex).ConfigureAwait(true); if (delegateResult.ResultStatus == ResultType.Success) { return(new RequestResult <ImmunizationResult>() { ResultStatus = delegateResult.ResultStatus, ResourcePayload = new ImmunizationResult() { LoadState = LoadStateModel.FromPHSAModel(delegateResult.ResourcePayload.LoadState), Immunizations = ImmunizationEvent.FromPHSAModelList(delegateResult.ResourcePayload.Result.ImmunizationViews), Recommendations = ImmunizationRecommendation.FromPHSAModelList(delegateResult.ResourcePayload.Result.Recommendations), }, PageIndex = delegateResult.PageIndex, PageSize = delegateResult.PageSize, TotalResultCount = delegateResult.TotalResultCount, }); } else { return(new RequestResult <ImmunizationResult>() { ResultStatus = delegateResult.ResultStatus, ResultError = delegateResult.ResultError, }); } }
public void ValidateRecomendation() { string recomendationSetId = "set-recomendation-id"; string diseaseEligibleDateString = "2021-02-02"; string diseaseName = "Human papillomavirus infection"; string vaccineName = "Human Papillomavirus-HPV9 Vaccine"; string antigenName = "HPV-9"; var mockDelegate = new Mock <IImmunizationDelegate>(); RequestResult <PHSAResult <ImmunizationResponse> > delegateResult = new RequestResult <PHSAResult <ImmunizationResponse> >() { ResultStatus = Common.Constants.ResultType.Success, ResourcePayload = new PHSAResult <ImmunizationResponse>() { LoadState = new PHSALoadState() { RefreshInProgress = false, }, Result = new ImmunizationResponse() { Recommendations = new List <ImmunizationRecommendationResponse>() { new ImmunizationRecommendationResponse() { ForecastCreationDate = DateTime.Now, RecommendationId = recomendationSetId, RecommendationSourceSystem = "MockSourceSystem", RecommendationSourceSystemId = "MockSourceID", Recommendations = new List <RecommendationResponse>() { new RecommendationResponse() { DateCriterions = new List <DateCriterion>() { new DateCriterion() { DateCriterionCode = new DateCriterionCode() { text = "Forecast by Disease Eligible Date" }, Value = diseaseEligibleDateString } }, ForecastStatus = new ForecastStatusModel() { ForecastStatusText = "Eligible" }, TargetDisease = new TargetDiseaseResponse() { targetDiseaseCodes = new List <SystemCode>() { new SystemCode() { Code = "240532009", CommonType = "DiseaseCode", Display = diseaseName, System = "https://ehealthbc.ca/NamingSystem/ca-bc-panorama-immunization-disease-code" } } }, VaccineCode = new VaccineCode() { VaccineCodeText = vaccineName, VaccineCodes = new List <SystemCode>() { new SystemCode() { Code = "BCYSCT_AN032", CommonType = "AntiGenCode", Display = antigenName, System = "https://ehealthbc.ca/NamingSystem/ca-bc-panorama-immunization-antigen-code" } } }, } }, } }, }, }, PageIndex = 0, PageSize = 5, TotalResultCount = 1, }; RequestResult <ImmunizationResult> expectedResult = new RequestResult <ImmunizationResult>() { ResultStatus = delegateResult.ResultStatus, ResourcePayload = new ImmunizationResult() { LoadState = LoadStateModel.FromPHSAModel(delegateResult.ResourcePayload.LoadState), Recommendations = ImmunizationRecommendation.FromPHSAModelList(delegateResult.ResourcePayload.Result.Recommendations), }, PageIndex = delegateResult.PageIndex, PageSize = delegateResult.PageSize, TotalResultCount = delegateResult.TotalResultCount, }; mockDelegate.Setup(s => s.GetImmunizations(It.IsAny <string>(), It.IsAny <int>())).Returns(Task.FromResult(delegateResult)); IImmunizationService service = new ImmunizationService(new Mock <ILogger <ImmunizationService> >().Object, mockDelegate.Object); var actualResult = service.GetImmunizations(string.Empty, 0); Assert.True(expectedResult.IsDeepEqual(actualResult.Result)); Assert.Equal(1, expectedResult.ResourcePayload.Recommendations.Count); var recomendationResult = expectedResult.ResourcePayload.Recommendations[0]; Assert.Equal(recomendationSetId, recomendationResult.RecommendationSetId); Assert.Equal(vaccineName, recomendationResult.Immunization.Name); Assert.Equal(1, recomendationResult.Immunization.ImmunizationAgents.Count()); Assert.Equal(antigenName, recomendationResult.Immunization.ImmunizationAgents.First().Name); Assert.Equal(1, recomendationResult.TargetDiseases.Count()); Assert.Equal(diseaseName, recomendationResult.TargetDiseases.First().Name); Assert.Equal(DateTime.Parse(diseaseEligibleDateString), recomendationResult.DisseaseEligibleDate); Assert.Null(recomendationResult.DiseaseDueDate); Assert.Null(recomendationResult.AgentDueDate); Assert.Null(recomendationResult.AgentEligibleDate); }