public async Task WithListener_WhenListenerAutoCreated_ShouldUseListener()
        {
            var httpClientTester = new HttpClientTester()
                                   .SetResponseContent(new Person("James"));

            var client = new FluentHttpClientBuilder("Test", httpClientTester.Client)
                         .AddMessageListener <MessageListener>()
                         .Build();
            var response = await client.Get("url")
                           .ExecuteAsync <Person>();

            response?.StatusCode.Should().Be(200);
        }
        public async Task WithListener_WhenOnFunc_ShouldCallFunc()
        {
            var httpClientTester = new HttpClientTester()
                                   .SetResponseContent(new Person("James"));

            HttpRequestMessage  requestMessage  = null;
            HttpResponseMessage responseMessage = null;

            var client = new FluentHttpClientBuilder("Test", httpClientTester.Client)
                         .OnRequest(r => { requestMessage = r; return(Task.CompletedTask); })
                         .OnResponse(r => { responseMessage = r; return(Task.CompletedTask); })
                         .Build();
            var response = await client.Get("url")
                           .ExecuteAsync <Person>();

            response?.StatusCode.Should().Be(200);
            requestMessage.Should().NotBeNull();
            responseMessage.Should().NotBeNull();
        }