public void TestBaseSetUp()
        {
            _validationResult = new ValidationResult();

            SpecificationId = NewRandomString();
            string providerId = NewRandomString();

            ProviderIds = new[] { providerId };

            FundingStreamId          = NewRandomString();
            FundingPeriodId          = NewRandomString();
            CorrelationId            = NewRandomString();
            User                     = NewUser();
            Jobs                     = Substitute.For <TJobCreation>();
            SpecificationIdValidator = Substitute.For <ISpecificationIdServiceRequestValidator>();
            ProviderIdsValidator     = Substitute.For <IPublishedProviderIdsServiceRequestValidator>();

            SpecificationIdValidator.Validate(SpecificationId)
            .Returns(_validationResult);
            ProviderIdsValidator.Validate(Arg.Is <string[]>(_ => _.SequenceEqual(ProviderIds)))
            .Returns(_validationResult);

            Specifications  = Substitute.For <ISpecificationsApiClient>();
            ProviderService = Substitute.For <IProviderService>();

            ResiliencePolicies = new ResiliencePolicies
            {
                SpecificationsRepositoryPolicy = Polly.Policy.NoOpAsync(),
                PublishedFundingRepository     = Polly.Policy.NoOpAsync()
            };

            FundingConfigurationService = Substitute.For <IFundingConfigurationService>();
        }
        public SpecificationPublishingService(
            ISpecificationIdServiceRequestValidator specificationIdValidator,
            IPublishedProviderIdsServiceRequestValidator publishedProviderIdsValidator,
            IProviderService providerService,
            ISpecificationsApiClient specifications,
            IPublishingResiliencePolicies resiliencePolicies,
            ICacheProvider cacheProvider,
            ICreateRefreshFundingJobs refreshFundingJobs,
            ICreateApproveAllFundingJobs approveSpecificationFundingJobs,
            ICreateApproveBatchFundingJobs approveProviderFundingJobs,
            ISpecificationFundingStatusService specificationFundingStatusService,
            IFundingConfigurationService fundingConfigurationService,
            IPrerequisiteCheckerLocator prerequisiteCheckerLocator,
            IPublishedFundingRepository publishedFundingRepository)
            : base(specificationIdValidator, publishedProviderIdsValidator, specifications, resiliencePolicies, fundingConfigurationService)
        {
            Guard.ArgumentNotNull(refreshFundingJobs, nameof(refreshFundingJobs));
            Guard.ArgumentNotNull(approveSpecificationFundingJobs, nameof(approveSpecificationFundingJobs));
            Guard.ArgumentNotNull(approveProviderFundingJobs, nameof(approveProviderFundingJobs));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(specificationFundingStatusService, nameof(specificationFundingStatusService));
            Guard.ArgumentNotNull(prerequisiteCheckerLocator, nameof(prerequisiteCheckerLocator));
            Guard.ArgumentNotNull(providerService, nameof(providerService));
            Guard.ArgumentNotNull(publishedFundingRepository, nameof(publishedFundingRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.PublishedFundingRepository, "resiliencePolicies.PublishedFundingRepository");

            _refreshFundingJobs = refreshFundingJobs;
            _cacheProvider      = cacheProvider;
            _approveSpecificationFundingJobs   = approveSpecificationFundingJobs;
            _approveProviderFundingJobs        = approveProviderFundingJobs;
            _specificationFundingStatusService = specificationFundingStatusService;
            _prerequisiteCheckerLocator        = prerequisiteCheckerLocator;
            _publishedFundingRepository        = publishedFundingRepository;
            _providerService = providerService;
        }
Example #3
0
        protected SpecificationPublishingBase(
            ISpecificationIdServiceRequestValidator specificationIdValidator,
            IPublishedProviderIdsServiceRequestValidator publishedProviderIdsValidator,
            ISpecificationsApiClient specifications,
            IPublishingResiliencePolicies resiliencePolicies,
            IFundingConfigurationService fundingConfigurationService)
        {
            Guard.ArgumentNotNull(specificationIdValidator, nameof(specificationIdValidator));
            Guard.ArgumentNotNull(publishedProviderIdsValidator, nameof(publishedProviderIdsValidator));
            Guard.ArgumentNotNull(specifications, nameof(specifications));
            Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsRepositoryPolicy, nameof(resiliencePolicies.SpecificationsRepositoryPolicy));
            Guard.ArgumentNotNull(fundingConfigurationService, nameof(fundingConfigurationService));

            SpecificationIdValidator      = specificationIdValidator;
            PublishedProviderIdsValidator = publishedProviderIdsValidator;
            Specifications               = specifications;
            _resiliencePolicies          = resiliencePolicies;
            _fundingConfigurationService = fundingConfigurationService;
        }
Example #4
0
        public ProviderFundingPublishingService(
            ISpecificationIdServiceRequestValidator specificationIdValidator,
            IPublishedProviderIdsServiceRequestValidator publishedProviderIdsValidator,
            ISpecificationsApiClient specifications,
            IPublishingResiliencePolicies resiliencePolicies,
            ICreateAllPublishProviderFundingJobs createAllPublishProviderFundingJobs,
            ICreateBatchPublishProviderFundingJobs createBatchPublishProviderFundingJobs,
            IPublishedFundingRepository publishedFundingRepository,
            IFundingConfigurationService fundingConfigurationService,
            ICreatePublishIntegrityJob createPublishIntegrityJob) :
            base(specificationIdValidator, publishedProviderIdsValidator, specifications, resiliencePolicies, fundingConfigurationService)
        {
            Guard.ArgumentNotNull(createAllPublishProviderFundingJobs, nameof(createAllPublishProviderFundingJobs));
            Guard.ArgumentNotNull(createBatchPublishProviderFundingJobs, nameof(createBatchPublishProviderFundingJobs));
            Guard.ArgumentNotNull(publishedFundingRepository, nameof(publishedFundingRepository));
            Guard.ArgumentNotNull(createPublishIntegrityJob, nameof(createPublishIntegrityJob));

            _createAllPublishProviderFundingJobs   = createAllPublishProviderFundingJobs;
            _createBatchPublishProviderFundingJobs = createBatchPublishProviderFundingJobs;
            _publishedFundingRepository            = publishedFundingRepository;
            _createPublishIntegrityJob             = createPublishIntegrityJob;
        }
        public FundingConfigurationController(IFundingConfigurationService fundingConfigurationService)
        {
            Guard.ArgumentNotNull(fundingConfigurationService, nameof(fundingConfigurationService));

            _fundingConfigurationService = fundingConfigurationService;
        }