public async Task MockHttpClientExceptionIsThrownIfUnmatchedResult()
        {
            var expected = "\n\nUnmatched setup result:\nStatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.StringContent, Headers:\r\n{\r\n  Content-Type: text/plain; charset=utf-8\r\n}\n";

            var mock    = new MockHttpClient();
            var content = new StringContent("content");

            mock.SetupPost("/api").ReturnsAsync(200).ReturnsAsync(404, content);

            var request = new SystemHttpRequestMessage(HttpMethod.Post, "/api");

            request.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
            request.Content = new System.Net.Http.StringContent("actual body");

            var result = await mock.Object.SendAsync(request);

            var exception = Assert.Throws <MockHttpClientException>(() => mock.VerifyAll());

            Assert.Equal(ExceptionReasonTypes.UnmatchedResult, exception.Reason);
            Assert.Equal(expected, exception.Message);
        }