public async Task Test_DoesntOverrideCustomHeaders()
        {
            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When("https://test.com")
            .Respond("application/json", "");

            var handle = new GithubClientMessageHandler(new DefaultTokenProvider("my-token"), mockHttp);
            var client = new HttpClient(handle);

            client.DefaultRequestHeaders.Add("Authorization", "token custom.token");
            client.DefaultRequestHeaders.Add("Accept", "application/custom");
            client.DefaultRequestHeaders.Add("User-Agent", "custom.agent");

            var result = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://test.com"));

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);

            var authHeader   = result.RequestMessage.Headers.GetValues("Authorization").First();
            var acceptHeader = result.RequestMessage.Headers.GetValues("Accept").First();
            var agentHeader  = result.RequestMessage.Headers.GetValues("User-Agent").First();

            Assert.AreEqual("token custom.token", authHeader, "Custom auth header was used.");
            Assert.AreEqual("application/custom", acceptHeader, "Custom accept header was used.");
            Assert.AreEqual("custom.agent", agentHeader, "Custom agent header was used");
        }
        public async Task Test_AppliesMissingHeaders()
        {
            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When("https://test.com")
            .Respond("application/json", "");

            var handle = new GithubClientMessageHandler(new DefaultTokenProvider("my-token"), mockHttp);
            var client = new HttpClient(handle);

            var result = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://test.com"));

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);

            var authHeader   = result.RequestMessage.Headers.GetValues("Authorization").First();
            var acceptHeader = result.RequestMessage.Headers.GetValues("Accept").First();
            var agentHeader  = result.RequestMessage.Headers.GetValues("User-Agent").First();

            Assert.AreEqual("token my-token", authHeader, "Auth header was added.");
            Assert.AreEqual("application/vnd.github.v3+json", acceptHeader, "Accept header was added.");
            Assert.AreEqual("ThatBlokeCalledJay.GithubClient", agentHeader, "User-Agent header was added.");
        }