public async void ValidRequest_RequestOneFhir_WithLocation()
        {
            var command = new CommandRequest
            {
                BaseUrl          = _requestUri.AbsoluteUri,
                ResourceType     = ResourceType.Binary,
                Method           = HttpMethod.Get,
                UseSecure        = false,
                ClientThumbprint = null,
                ServerThumbprint = null,
                RegenerateUrl    = false,
                Headers          =
                {
                    { HeaderNames.Authorization,           $"Bearer {_jwtToken}"                 },
                    { FhirConstants.HeaderSspFrom,         "20000000012"                         },
                    { FhirConstants.HeaderSspTo,           "20000000018"                         },
                    { FhirConstants.HeaderSspInterationId, FhirConstants.ReadBinaryInteractionId },
                    { FhirConstants.HeaderSspTraceId,      Guid.NewGuid().ToString()             }
                }
            };

            var connector = new FhirConnector(_loggingHelper, _httpRequestHelper);

            var actual = await connector.RequestOne <CommandRequest, FhirResponse>(command);

            Assert.IsType <FhirResponse>(actual);
            Assert.NotNull(actual);

            Assert.IsType <Binary>(actual.Resource);
            Assert.NotNull(actual.ResponseLocation);
        }
        public void ValidRequest_RequestOneFhir_NotFoundError()
        {
            var command = new CommandRequest
            {
                BaseUrl          = _requestUri.AbsoluteUri,
                ResourceType     = ResourceType.Binary,
                Method           = HttpMethod.Get,
                UseSecure        = false,
                ClientThumbprint = null,
                ServerThumbprint = null,
                RegenerateUrl    = false,
                Headers          =
                {
                    { HeaderNames.Authorization,           $"Bearer {_jwtToken}"                 },
                    { FhirConstants.HeaderSspFrom,         "20000000013"                         },
                    { FhirConstants.HeaderSspTo,           "20000000018"                         },
                    { FhirConstants.HeaderSspInterationId, FhirConstants.ReadBinaryInteractionId },
                    { FhirConstants.HeaderSspTraceId,      Guid.NewGuid().ToString()             }
                }
            };

            var connector = new FhirConnector(_loggingHelper, _httpRequestHelper);

            Assert.ThrowsAsync <HttpFhirException>(async() => await connector.RequestOneFhir <CommandRequest, Binary>(command));
        }
        public async void ValidRequest_RequestOneFhir()
        {
            var command = new CommandRequest
            {
                BaseUrl          = _requestUri.AbsoluteUri,
                ResourceType     = ResourceType.Binary,
                Method           = HttpMethod.Get,
                UseSecure        = false,
                ClientThumbprint = null,
                ServerThumbprint = null,
                RegenerateUrl    = false,
                Headers          =
                {
                    { HeaderNames.Authorization,           $"Bearer {_jwtToken}"                 },
                    { FhirConstants.HeaderSspFrom,         "20000000017"                         },
                    { FhirConstants.HeaderSspTo,           "20000000018"                         },
                    { FhirConstants.HeaderSspInterationId, FhirConstants.ReadBinaryInteractionId },
                    { FhirConstants.HeaderSspTraceId,      Guid.NewGuid().ToString()             }
                }
            };

            var connector = new FhirConnector(_loggingHelper, _httpRequestHelper);

            var actual = await connector.RequestOneFhir <CommandRequest, Binary>(command);

            Assert.IsType <Binary>(actual);
            Assert.NotNull(actual);

            var binary = actual as Binary;

            Assert.Equal("text/html", binary.ContentType);
            Assert.Equal(Encoding.UTF8.GetBytes("<p>Hello</p>"), binary.Content);
        }