public async Task SaveFundingTemplate_GivenInvalidTemplateDueToProfilePeriods_BadRequest() { //Arrange string template = CreateJsonFile("CalculateFunding.Services.Policy.Resources.LogicalModelTemplate.json"); string fundingStreamId = "PES"; string templateVersion = "1.5"; string fundingPeriodId = "AY-2020"; FundingTemplateValidationResult validationResult = new FundingTemplateValidationResult { TemplateVersion = templateVersion, FundingStreamId = fundingStreamId, SchemaVersion = "1.0", }; ITemplateMetadataResolver templateMetadataResolver = CreateMetadataResolver("1.0"); IFundingTemplateValidationService fundingTemplateValidationService = CreateFundingTemplateValidationService(); fundingTemplateValidationService .ValidateFundingTemplate(Arg.Is(template), Arg.Is(fundingStreamId), Arg.Is(fundingPeriodId), Arg.Is(templateVersion)) .Returns(validationResult); IFundingTemplateRepository fundingTemplateRepository = CreateFundingTemplateRepository(); ILogger logger = CreateLogger(); ICacheProvider cacheProvider = CreateCacheProvider(); FundingTemplateService fundingTemplateService = CreateFundingTemplateService( logger, fundingTemplateValidationService: fundingTemplateValidationService, fundingTemplateRepository: fundingTemplateRepository, cacheProvider: cacheProvider, templateMetadataResolver: templateMetadataResolver); //Act IActionResult result = await fundingTemplateService.SaveFundingTemplate(createdAtActionName, createdAtControllerName, template, fundingStreamId, fundingPeriodId, templateVersion); //Assert result .Should() .BeAssignableTo <BadRequestObjectResult>(); BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; SerializableError validationResults = badRequestObjectResult.Value as SerializableError; validationResults .Count() .Should() .Be(1); ((string[])validationResults["DistributionPeriods"])[0] .Should() .Be("Funding line : 'Total funding line' has values for the distribution periods"); }