public async Task GetFundingConfigurations_GivenSuccessResponse_ReturnsDictionary()
        {
            //Arrange
            SpecificationSummary specificationSummary = CreateSpecificationSummary();

            IPoliciesApiClient policiesApiClient = CreatePoliciesApiClient();

            policiesApiClient
            .GetFundingConfiguration(Arg.Any <string>(), Arg.Any <string>())
            .Returns(new ApiResponse <FundingConfiguration>(System.Net.HttpStatusCode.OK, new FundingConfiguration()));

            FundingConfigurationService fundingConfigurationService = CreateService(policiesApiClient);

            //Act
            IDictionary <string, FundingConfiguration> results = await fundingConfigurationService.GetFundingConfigurations(specificationSummary);

            //Assert
            results
            .Should()
            .HaveCount(3);

            results["fs-1"]
            .Should()
            .NotBeNull();

            results["fs-2"]
            .Should()
            .NotBeNull();

            results["fs-3"]
            .Should()
            .NotBeNull();
        }
        public void GetFundingConfigurations_GivenApiResponseWithInvalidStatusCode_ThrowsException()
        {
            //Arrange
            SpecificationSummary specificationSummary = CreateSpecificationSummary();

            IPoliciesApiClient policiesApiClient = CreatePoliciesApiClient();

            policiesApiClient
            .GetFundingConfiguration(Arg.Any <string>(), Arg.Any <string>())
            .Returns(
                new ApiResponse <FundingConfiguration>(System.Net.HttpStatusCode.OK, new FundingConfiguration()),
                new ApiResponse <FundingConfiguration>(System.Net.HttpStatusCode.BadRequest, null));

            FundingConfigurationService fundingConfigurationService = CreateService(policiesApiClient);

            //Act
            Func <Task> test = () => fundingConfigurationService.GetFundingConfigurations(specificationSummary);

            //Assert
            test
            .Should()
            .ThrowExactly <Exception>();
        }