예제 #1
0
        public TransactionFactory(ILogger logger, ITransactionResiliencePolicies transactionResiliencePolicies)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(transactionResiliencePolicies, nameof(transactionResiliencePolicies));

            _logger = logger;
            _transactionResiliencePolicies = transactionResiliencePolicies;
        }
        public Transaction(ILogger logger, ITransactionResiliencePolicies transactionResiliencePolicies, string transactionName)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(transactionResiliencePolicies, nameof(transactionResiliencePolicies));
            Guard.ArgumentNotNull(transactionResiliencePolicies.TransactionPolicy, nameof(transactionResiliencePolicies.TransactionPolicy));
            Guard.IsNullOrWhiteSpace(transactionName, nameof(transactionName));

            _functions         = new ConcurrentBag <Func <Task> >();
            _logger            = logger;
            _transactionPolicy = transactionResiliencePolicies.TransactionPolicy;
            _transactionName   = transactionName;
        }
예제 #3
0
        public void SetUp()
        {
            _logger        = Substitute.For <ILogger>();
            _jobManagement = Substitute.For <IJobManagement>();
            _jobsRunning   = Substitute.For <IJobsRunning>();
            _prerequisiteCheckerLocator = Substitute.For <IPrerequisiteCheckerLocator>();
            _prerequisiteCheckerLocator.GetPreReqChecker(PrerequisiteCheckerType.ApproveAllProviders)
            .Returns(new ApproveAllProvidersPrerequisiteChecker(_jobsRunning, _jobManagement, _logger));
            _prerequisiteCheckerLocator.GetPreReqChecker(PrerequisiteCheckerType.ApproveBatchProviders)
            .Returns(new ApproveBatchProvidersPrerequisiteChecker(_jobsRunning, _jobManagement, _logger));
            _publishedFundingDataService          = Substitute.For <IPublishedFundingDataService>();
            _publishedProviderStatusUpdateService = Substitute.For <IPublishedProviderStatusUpdateService>();
            _publishedProviderIndexerService      = Substitute.For <IPublishedProviderIndexerService>();
            _generateCsvJobsLocator        = Substitute.For <IGeneratePublishedFundingCsvJobsCreationLocator>();
            _transactionResiliencePolicies = new TransactionResiliencePolicies {
                TransactionPolicy = Policy.NoOpAsync()
            };
            _transactionFactory = new TransactionFactory(_logger, _transactionResiliencePolicies);
            _publishedProviderVersionService = Substitute.For <IPublishedProviderVersionService>();

            _approveService = new ApproveService(_publishedProviderStatusUpdateService,
                                                 _publishedFundingDataService,
                                                 _publishedProviderIndexerService,
                                                 new ResiliencePolicies
            {
                PublishedFundingRepository = Policy.NoOpAsync()
            },
                                                 _prerequisiteCheckerLocator,
                                                 _jobManagement,
                                                 _logger,
                                                 _transactionFactory,
                                                 _publishedProviderVersionService,
                                                 _generateCsvJobsLocator);

            _jobId         = NewRandomString();
            _correlationId = NewRandomString();
            _userId        = NewRandomString();
            _userName      = NewRandomString();

            _message = new Message();

            SetUserProperty("user-id", _userId);
            SetUserProperty("user-name", _userName);
            SetUserProperty("jobId", null);

            _publishedFundingDataService.GetPublishedProvidersForApproval(Arg.Any <string>(), Arg.Any <string[]>())
            .Returns(new[] { new PublishedProvider() });
        }