public async Task RecommendedPassiveMocking()
        {
            // Given
            m_TeePeeBuilder.ForRequest("https://some.api/path/resource", HttpMethod.Get)
            .ContainingQueryParam("filter", "those")
            .Responds()
            .WithStatus(HttpStatusCode.OK)
            .WithBody(new
            {
                Things = new[]
                {
                    new
                    {
                        Value = 10
                    }
                }
            });

            var controller = new HttpClientFactoryBasicUsageController(m_TeePeeBuilder.Build().Manual().CreateHttpClientFactory());

            // When
            var result = await controller.FireAndAct();

            // Then
            Assert.NotNull(result);
            var okResult    = Assert.IsType <OkObjectResult>(result);
            var resultValue = Assert.IsType <int>(okResult.Value);

            Assert.Equal(10, resultValue);
        }
        public async Task MockAndVerify()
        {
            // Given
            var requestTracker = m_TeePeeBuilder.ForRequest("https://some.api/path/resource", HttpMethod.Put)
                                 .ContainingQueryParam("filter", "other")
                                 .WithBody(new { Caller = "ThisCaller" })
                                 .Responds()
                                 .WithStatus(HttpStatusCode.Created)
                                 .TrackRequest();

            var controller = new HttpClientFactoryBasicUsageController(m_TeePeeBuilder.Build().Manual().CreateHttpClientFactory());

            // When
            var result = await controller.FireAndForget();

            // Then
            Assert.NotNull(result);
            Assert.IsType <OkResult>(result);

            requestTracker.WasCalled(1);
        }