public FundingTemplateService( ILogger logger, IFundingTemplateRepository fundingTemplateRepository, IPolicyResiliencePolicies policyResiliencePolicies, IFundingTemplateValidationService fundingTemplateValidationService, ICacheProvider cacheProvider, ITemplateMetadataResolver templateMetadataResolver, ITemplateBuilderService templateBuilderService, IMapper mapper) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(fundingTemplateRepository, nameof(fundingTemplateRepository)); Guard.ArgumentNotNull(policyResiliencePolicies?.CacheProvider, nameof(policyResiliencePolicies.CacheProvider)); Guard.ArgumentNotNull(policyResiliencePolicies?.FundingTemplateRepository, nameof(policyResiliencePolicies.FundingTemplateRepository)); Guard.ArgumentNotNull(fundingTemplateValidationService, nameof(fundingTemplateValidationService)); Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); Guard.ArgumentNotNull(templateMetadataResolver, nameof(templateMetadataResolver)); Guard.ArgumentNotNull(templateBuilderService, nameof(templateBuilderService)); Guard.ArgumentNotNull(mapper, nameof(mapper)); _logger = logger; _fundingTemplateRepository = fundingTemplateRepository; _fundingTemplateRepositoryPolicy = policyResiliencePolicies.FundingTemplateRepository; _fundingTemplateValidationService = fundingTemplateValidationService; _cacheProvider = cacheProvider; _cacheProviderPolicy = policyResiliencePolicies.CacheProvider; _templateMetadataResolver = templateMetadataResolver; _templateBuilderService = templateBuilderService; _mapper = mapper; }
private static FundingTemplateService CreateFundingTemplateService( ILogger logger = null, IFundingTemplateRepository fundingTemplateRepository = null, IFundingTemplateValidationService fundingTemplateValidationService = null, ICacheProvider cacheProvider = null, ITemplateMetadataResolver templateMetadataResolver = null, ITemplateBuilderService templateBuilderService = null, IMapper mapper = null) { if (mapper == null) { MapperConfiguration fundingConfMappingConfig = new MapperConfiguration(c => { c.AddProfile <FundingConfigurationMappingProfile>(); }); mapper = fundingConfMappingConfig.CreateMapper(); } return(new FundingTemplateService( logger ?? CreateLogger(), fundingTemplateRepository ?? CreateFundingTemplateRepository(), PolicyResiliencePoliciesTestHelper.GenerateTestPolicies(), fundingTemplateValidationService ?? CreateFundingTemplateValidationService(), cacheProvider ?? CreateCacheProvider(), templateMetadataResolver ?? CreateMetadataResolver(), templateBuilderService ?? CreateTemplateBuilderService(), mapper )); }
public TemplateBuildController( ITemplateBuilderService templateBuilderService, IIoCValidatorFactory validatorFactory, TemplateSearchService templateSearchService) { _templateBuilderService = templateBuilderService; _validatorFactory = validatorFactory; _templateSearchService = templateSearchService; }
public async Task GetFundingTemplates_GivenTemplateIsInBlob_ReturnsOkObjectResult() { //Arrange const string fundingStreamId = "PES"; const string fundingPeriodId = "AY-2020"; string blobNamePrefix = $"{fundingStreamId}/{ fundingPeriodId}/"; IEnumerable <TemplateSummaryResponse> templateVersions = new[] { new TemplateSummaryResponse() { FundingPeriodId = fundingPeriodId, FundingStreamId = fundingStreamId, MajorVersion = 1, MinorVersion = 0, Status = TemplateStatus.Published } }; IEnumerable <PublishedFundingTemplate> publishedFundingTemplate = new[] { new PublishedFundingTemplate() { TemplateVersion = "1.0" } }; IFundingTemplateRepository fundingTemplateRepository = CreateFundingTemplateRepository(); fundingTemplateRepository .SearchTemplates(Arg.Is(blobNamePrefix)) .Returns(publishedFundingTemplate); ITemplateBuilderService templateBuilderService = CreateTemplateBuilderService(); templateBuilderService.FindVersionsByFundingStreamAndPeriod(Arg.Is <FindTemplateVersionQuery>(x => x.FundingStreamId == fundingStreamId && x.FundingPeriodId == fundingPeriodId)) .Returns(templateVersions); ILogger logger = CreateLogger(); FundingTemplateService fundingTemplateService = CreateFundingTemplateService( logger, fundingTemplateRepository: fundingTemplateRepository, templateBuilderService: templateBuilderService); //Act ActionResult <IEnumerable <PublishedFundingTemplate> > result = await fundingTemplateService.GetFundingTemplates(fundingStreamId, fundingPeriodId); //Assert result .Value .Should() .BeEquivalentTo(publishedFundingTemplate); }
public async Task GetFundingTemplates_GivenTemplateIsInBlob_Metatdata_In_TemplateBuilder_Collection_ReturnsOkObjectResultWithAMetadata() { //Arrange const string fundingStreamId = "PES"; const string fundingPeriodId = "AY-2020"; string blobNamePrefix = $"{fundingStreamId}/{ fundingPeriodId}/"; IEnumerable <TemplateSummaryResponse> templateVersions = new[] { new TemplateSummaryResponse() { FundingPeriodId = fundingPeriodId, FundingStreamId = fundingStreamId, MajorVersion = 1, MinorVersion = 1, Status = TemplateStatus.Published, AuthorId = "Auth-Id", AuthorName = "Auth-Name", Comments = "SomeComments", SchemaVersion = "1.1" }, new TemplateSummaryResponse() { FundingPeriodId = fundingPeriodId, FundingStreamId = fundingStreamId, MajorVersion = 1, MinorVersion = 0, Status = TemplateStatus.Published, AuthorId = "Auth-Id2", AuthorName = "Auth-Name2", Comments = "SomeComments2", SchemaVersion = "1.2" } }; IEnumerable <PublishedFundingTemplate> pubblishedFundingTempaltes = new[] { new PublishedFundingTemplate() { TemplateVersion = "1.0", PublishDate = new DateTime(2020, 06, 15, 10, 30, 50) } }; IFundingTemplateRepository fundingTemplateRepository = CreateFundingTemplateRepository(); fundingTemplateRepository .SearchTemplates(Arg.Is(blobNamePrefix)) .Returns(pubblishedFundingTempaltes); ITemplateBuilderService templateBuilderService = CreateTemplateBuilderService(); templateBuilderService.FindVersionsByFundingStreamAndPeriod(Arg.Is <FindTemplateVersionQuery>(x => x.FundingStreamId == fundingStreamId && x.FundingPeriodId == fundingPeriodId)) .Returns(templateVersions); ILogger logger = CreateLogger(); FundingTemplateService fundingTemplateService = CreateFundingTemplateService( logger, fundingTemplateRepository: fundingTemplateRepository, templateBuilderService: templateBuilderService); //Act ActionResult <IEnumerable <PublishedFundingTemplate> > result = await fundingTemplateService.GetFundingTemplates(fundingStreamId, fundingPeriodId); //Assert PublishedFundingTemplate resultTemplate = result.Value.FirstOrDefault(); TemplateSummaryResponse templateResponse = templateVersions.First(x => x.MajorVersion == 1 && x.MinorVersion == 0); resultTemplate.TemplateVersion.Should().Be(pubblishedFundingTempaltes.First().TemplateVersion); resultTemplate.PublishDate.Should().Be(pubblishedFundingTempaltes.First().PublishDate); resultTemplate.AuthorId.Should().Be(templateResponse.AuthorId); resultTemplate.AuthorName.Should().Be(templateResponse.AuthorName); resultTemplate.PublishNote.Should().Be(templateResponse.Comments); resultTemplate.SchemaVersion.Should().Be(templateResponse.SchemaVersion); }