public async Task GetAllFundingPeriods_GivenNullOrEmptyPeriodsReturned_LogsAndReturnsOKWithEmptyList()
        {
            // Arrange
            ILogger logger = CreateLogger();

            IEnumerable <FundingPeriod> Periods = null;

            IPolicyRepository policyRepository = CreatePolicyRepository();

            policyRepository
            .GetFundingPeriods()
            .Returns(Periods);

            FundingPeriodService fundingPeriodService = CreateFundingPeriodService(logger: logger, policyRepository: policyRepository);

            // Act
            IEnumerable <FundingPeriod> result = await fundingPeriodService.GetAllFundingPeriods();

            // Assert
            result
            .Should()
            .BeOfType <FundingPeriod[]>()
            .Which
            .Should()
            .AllBeEquivalentTo(Periods);

            logger
            .Received(1)
            .Error(Arg.Is("No funding periods were returned"));
        }
        public async Task GetAllFundingPeriods_ReturnsSuccess()
        {
            ILogger logger = CreateLogger();

            IEnumerable <FundingPeriod> Periods = new List <FundingPeriod>
            {
                new FundingPeriod(),
                new FundingPeriod()
            };

            IPolicyRepository policyRepository = CreatePolicyRepository();

            policyRepository
            .GetFundingPeriods()
            .Returns(Periods);

            FundingPeriodService fundingPeriodService = CreateFundingPeriodService(logger: logger, policyRepository: policyRepository);

            IEnumerable <FundingPeriod> result = await fundingPeriodService.GetAllFundingPeriods();

            result
            .Should()
            .HaveCount(2);
        }