public async Task <PatientValidationRequestResult> ValidatePatient(PatientValidationRequest request)
        {
            var token = await _apiService.GetAuthenticationToken();

            if (token == null || string.IsNullOrWhiteSpace(token.AccessToken))
            {
                return(new PatientValidationRequestResult
                {
                    ErrorMessage = "Authorization failed"
                });
            }

            var result = await _apiService.Verify(token.AccessToken, request);

            if (result.Response == null)
            {
                return(new PatientValidationRequestResult
                {
                    ErrorMessage = "No response"
                });
            }

            return(new PatientValidationRequestResult
            {
                MemberName = result.Response.MemberName,
                MemberNumber = result.Response.MemberNumber,
                Status = result.Response.Status,
                ErrorMessage = result.Error == null || string.IsNullOrWhiteSpace(result.Error.Message)
                                        ? null
                                        : result.Error.Message
            });
        }
        public void ValidatePatientMethod_Returns_Authorization_Failed_Error_Message_If_Request_For_Token_Returns_Null()
        {
            //Arrange
            _patientApiService
            .GetAuthenticationToken()
            .Returns(Task.FromResult <PatientApiAuthenticationToken>(null));

            var service = new PatientValidationService(_patientApiService);

            //Act
            var result = service.ValidatePatient(new PatientValidationRequest
            {
                MemberNumber = Guid.NewGuid().ToString("N"),
                RefDate      = DateTime.Now.Date.ToString(CultureInfo.InvariantCulture)
            }).Result;

            //Assert
            result.ErrorMessage.Should().NotBeNullOrWhiteSpace();
            result.ErrorMessage.Should().Be("Authorization failed");
        }