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

            IEnumerable <FundingStream> fundingStreams = new[]
            {
                new FundingStream(),
                new FundingStream()
            };

            ICacheProvider cacheProvider = CreateCacheProvider();

            cacheProvider
            .GetAsync <FundingStream[]>(Arg.Is(CacheKeys.AllFundingStreams))
            .Returns(fundingStreams.ToArray());

            IPolicyRepository policyRepository = CreatePolicyRepository();

            FundingStreamService fundingStreamsService = CreateFundingStreamService(logger, cacheProvider, policyRepository);

            // Act
            IActionResult result = await fundingStreamsService.GetFundingStreams();

            // Assert
            result
            .Should()
            .BeOfType <OkObjectResult>();

            OkObjectResult objectResult = result as OkObjectResult;

            IEnumerable <FundingStream> values = objectResult.Value as IEnumerable <FundingStream>;

            values
            .Should()
            .HaveCount(2);

            await
            policyRepository
            .DidNotReceive()
            .GetFundingStreams();
        }