public async Task GetMappedCalculationsOfSpecificationTemplate_TemplateMappingExistsInCache_TemplateMappingItemsReturned()
        {
            //Arrange
            ILogger logger          = CreateLogger();
            string  specificationId = "testSpecId";
            string  fundingStreamId = "testFundingStreamId";

            List <TemplateMappingItem> templateMappingItems = new List <TemplateMappingItem>();

            TemplateMapping templateMapping = new TemplateMapping()
            {
                FundingStreamId      = fundingStreamId,
                SpecificationId      = specificationId,
                TemplateMappingItems = templateMappingItems
            };

            string cacheKey = $"{CacheKeys.TemplateMapping}{specificationId}-{fundingStreamId}";

            ICacheProvider cacheProvider = CreateCacheProvider();

            cacheProvider
            .GetAsync <TemplateMapping>(cacheKey)
            .Returns(templateMapping);

            CalculationService service = CreateCalculationService(
                logger: logger,
                cacheProvider: cacheProvider);

            // Act
            IActionResult result = await service.GetMappedCalculationsOfSpecificationTemplate(specificationId, fundingStreamId);

            // Assert
            TemplateMappingSummary expectedResult = new TemplateMappingSummary()
            {
                SpecificationId      = specificationId,
                FundingStreamId      = fundingStreamId,
                TemplateMappingItems = templateMappingItems,
            };

            result
            .Should()
            .BeOfType <OkObjectResult>()
            .Which
            .Value
            .Should()
            .BeEquivalentTo(expectedResult);
        }
        public async Task GetMappedCalculationsOfSpecificationTemplate_TemplateMappingExistsInCosmos_TemplateMappingItemsReturned()
        {
            //Arrange
            ILogger logger          = CreateLogger();
            string  specificationId = "testSpecId";
            string  fundingStreamId = "testFundingStreamId";

            List <TemplateMappingItem> templateMappingItems = new List <TemplateMappingItem>();

            TemplateMapping templateMapping = new TemplateMapping()
            {
                FundingStreamId      = fundingStreamId,
                SpecificationId      = specificationId,
                TemplateMappingItems = templateMappingItems
            };

            ICalculationsRepository calculationsRepository = CreateCalculationsRepository();

            calculationsRepository
            .GetTemplateMapping(specificationId, fundingStreamId)
            .Returns(templateMapping);

            CalculationService service = CreateCalculationService(
                logger: logger,
                calculationsRepository: calculationsRepository);

            // Act
            IActionResult result = await service.GetMappedCalculationsOfSpecificationTemplate(specificationId, fundingStreamId);

            // Assert

            TemplateMappingSummary expectedResult = new TemplateMappingSummary()
            {
                SpecificationId      = specificationId,
                FundingStreamId      = fundingStreamId,
                TemplateMappingItems = templateMappingItems,
            };

            result
            .Should()
            .BeOfType <OkObjectResult>()
            .Which
            .Value
            .Should()
            .BeEquivalentTo(expectedResult);
        }