public TransactionsControllerFixture WithInfuraApiClientHandler(InfuraApiDelegatingHandler apiClientHandler)
        {
            _setup += services => services
                      .AddHttpClient <IInfuraApiClient, InfuraApiApiClient>(client => client.BaseAddress = new Uri("http://localhost.test.svr"))
                      .AddHttpMessageHandler(() => apiClientHandler);

            return(this);
        }
            public async Task It_Search_For_A_Block_Transactions(string description, BlockSearchTheoryData theoryData)
            {
                InfuraApiDelegatingHandler apiClientSpy = new InfuraApiDelegatingHandler()
                                                          .WithResponses(theoryData.BlockSearchResponses);

                TransactionsController sut = new TransactionsControllerFixture()
                                             .WithInfuraApiClientHandler(apiClientSpy)
                                             .CreateSut();

                var result = await sut.Get(theoryData.BlockNumber, theoryData.Address);

                apiClientSpy.BlockNumberRequests.Should()
                .BeEquivalentTo(theoryData.ExpectedBlockNumberRequests, description);

                result.Value.Should().BeEquivalentTo(theoryData.ExpectedTransactions);
            }