public HttpClientBuilder WithManagedIdentityAuthorisationHeader(IManagedIdentityTokenGenerator tokenGenerator)
        {
            var newHandler = new ManagedIdentityHeadersHandler(tokenGenerator);

            AddHandlerToChain(newHandler);

            return(this);
        }
        public async Task ThenBearerHeaderShouldBeAdded()
        {
            var mockTokenGenerator = new Mock <IManagedIdentityTokenGenerator>();

            mockTokenGenerator.Setup(x => x.Generate()).ReturnsAsync("TestTokenValue");

            var handler = new ManagedIdentityHeadersHandler(mockTokenGenerator.Object)
            {
                InnerHandler = new StubResponseHandler()
            };

            var client = new HttpClient(handler);

            var response = await client.GetAsync("http://localhost/test");

            response.RequestMessage.Headers.Authorization.Scheme.Should().Be("Bearer");
            response.RequestMessage.Headers.Authorization.Parameter.Should().Be("TestTokenValue");
        }