public PublishedFundingStatusUpdateService( IPublishingResiliencePolicies publishingResiliencePolicies, IVersionRepository <PublishedFundingVersion> publishedFundingVersionRepository, IPublishedFundingIdGeneratorResolver publishedFundingIdGeneratorResolver, ILogger logger, IPublishingEngineOptions publishingEngineOptions, IVersionBulkRepository <PublishedFundingVersion> publishedFundingVersionBulkRepository, IPublishedFundingBulkRepository publishedFundingBulkRepository) { Guard.ArgumentNotNull(publishingResiliencePolicies?.PublishedFundingRepository, nameof(publishingResiliencePolicies.PublishedFundingRepository)); Guard.ArgumentNotNull(publishingResiliencePolicies?.PublishedProviderVersionRepository, nameof(publishingResiliencePolicies.PublishedProviderVersionRepository)); Guard.ArgumentNotNull(publishedFundingVersionRepository, nameof(publishedFundingVersionRepository)); Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(publishingEngineOptions, nameof(publishingEngineOptions)); Guard.ArgumentNotNull(publishedFundingVersionBulkRepository, nameof(publishedFundingVersionBulkRepository)); Guard.ArgumentNotNull(publishedFundingBulkRepository, nameof(publishedFundingBulkRepository)); _publishingResiliencePolicy = publishingResiliencePolicies.PublishedFundingRepository; _publishedFundingVersionRepository = publishedFundingVersionRepository; _publishedFundingIdGeneratorResolver = publishedFundingIdGeneratorResolver; _logger = logger; _publishingEngineOptions = publishingEngineOptions; _publishedFundingVersionBulkRepository = publishedFundingVersionBulkRepository; _publishedFundingBulkRepository = publishedFundingBulkRepository; _versionRepositoryPolicy = publishingResiliencePolicies.PublishedProviderVersionRepository; }
public void SetUp() { ILogger logger = Substitute.For <ILogger>(); IConfiguration configuration = Substitute.For <IConfiguration>(); _publishedFundingBulkRepository = Substitute.For <IPublishedFundingBulkRepository>(); _publishedFundingVersionRepository = Substitute.For <IVersionRepository <PublishedFundingVersion> >(); _publishedFundingVersionBulkRepository = Substitute.For <IVersionBulkRepository <PublishedFundingVersion> >(); _publishedFundingIdGeneratorResolver = Substitute.For <IPublishedFundingIdGeneratorResolver>(); _author = new Reference { Id = "authorId", Name = "author" }; _publishedFundingStatusUpdateService = new PublishedFundingStatusUpdateService(PublishingResilienceTestHelper.GenerateTestPolicies(), _publishedFundingVersionRepository, _publishedFundingIdGeneratorResolver, logger, new PublishingEngineOptions(configuration), _publishedFundingVersionBulkRepository, _publishedFundingBulkRepository); _publishedFundingPeriod = new PublishedFundingPeriod { Type = PublishedFundingPeriodType.AY, Period = "123" }; }
public void SaveVersions_GivenPublishedProviderResultsButSavingVersionsCausesExceptions_LogsAndThrows() { //Arrange IEnumerable <PublishedProvider> publishedProviders = new[] { new PublishedProvider { Current = new PublishedProviderVersion() } }; ILogger logger = CreateLogger(); IVersionBulkRepository <PublishedProviderVersion> versionBulkRepository = CreateVersionBulkRepository(); versionBulkRepository .When(x => x.SaveVersion(Arg.Any <PublishedProviderVersion>(), Arg.Any <string>())) .Do(x => { throw new Exception("Failed to save versions"); }); PublishedProviderVersioningService service = CreateVersioningService( logger, versionBulkRepository: versionBulkRepository); //Act Func <Task> test = async() => await service.SaveVersions(publishedProviders); //Assert test .Should() .ThrowExactly <Exception>() .Which .Message .Should() .Be("Failed to save versions"); }
private static PublishedProviderVersioningService CreateVersioningService( ILogger logger = null, IVersionRepository <PublishedProviderVersion> versionRepository = null, IVersionBulkRepository <PublishedProviderVersion> versionBulkRepository = null) { IConfiguration configuration = Substitute.For <IConfiguration>(); return(new PublishedProviderVersioningService( logger ?? CreateLogger(), versionRepository ?? CreateVersionRepository(), PublishingResilienceTestHelper.GenerateTestPolicies(), new PublishingEngineOptions(configuration), versionBulkRepository ?? CreateVersionBulkRepository())); }
public PublishedProviderVersioningService( ILogger logger, IVersionRepository <PublishedProviderVersion> versionRepository, IPublishingResiliencePolicies resiliencePolicies, IPublishingEngineOptions publishingEngineOptions, IVersionBulkRepository <PublishedProviderVersion> versionBulkRepository) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(versionRepository, nameof(versionRepository)); Guard.ArgumentNotNull(resiliencePolicies?.PublishedProviderVersionRepository, nameof(resiliencePolicies.PublishedProviderVersionRepository)); Guard.ArgumentNotNull(publishingEngineOptions, nameof(publishingEngineOptions)); Guard.ArgumentNotNull(versionBulkRepository, nameof(versionBulkRepository)); _logger = logger; _versionRepository = versionRepository; _publishingEngineOptions = publishingEngineOptions; _versionRepositoryPolicy = resiliencePolicies.PublishedProviderVersionRepository; _versionBulkRepository = versionBulkRepository; }
protected static ProcessDatasetService CreateProcessDatasetService( IBlobClient blobClient = null, IMessengerService messengerService = null, ILogger logger = null, IDatasetRepository datasetRepository = null, IExcelDatasetReader excelDatasetReader = null, ICacheProvider cacheProvider = null, ICalcsRepository calcsRepository = null, IProvidersApiClient providersApiClient = null, ISpecificationsApiClient specificationsApiClient = null, IProviderSourceDatasetsRepository providerResultsRepository = null, ITelemetry telemetry = null, IDatasetsResiliencePolicies datasetsResiliencePolicies = null, IDatasetsAggregationsRepository datasetsAggregationsRepository = null, IFeatureToggle featureToggle = null, IMapper mapper = null, IJobManagement jobManagement = null, IProviderSourceDatasetVersionKeyProvider versionKeyProvider = null, IJobsApiClient jobsApiClient = null, IVersionBulkRepository <ProviderSourceDatasetVersion> versionBulkRepository = null, IProviderSourceDatasetBulkRepository providerSourceDatasetBulkRepository = null) { return(new ProcessDatasetService( datasetRepository ?? CreateDatasetsRepository(), excelDatasetReader ?? CreateExcelDatasetReader(), cacheProvider ?? CreateCacheProvider(), calcsRepository ?? CreateCalcsRepository(), blobClient ?? CreateBlobClient(), messengerService ?? CreateMessengerService(), providerResultsRepository ?? CreateProviderResultsRepository(), providersApiClient ?? CreateProvidersApiClient(), specificationsApiClient ?? CreateSpecificationsApiClient(), logger ?? CreateLogger(), datasetsResiliencePolicies ?? DatasetsResilienceTestHelper.GenerateTestPolicies(), datasetsAggregationsRepository ?? CreateDatasetsAggregationsRepository(), featureToggle ?? CreateFeatureToggle(), mapper ?? CreateMapper(), jobManagement ?? CreateJobManagement(), versionKeyProvider ?? CreateDatasetVersionKeyProvider(), versionBulkRepository ?? new Mock <IVersionBulkRepository <ProviderSourceDatasetVersion> >().Object, providerSourceDatasetBulkRepository ?? new Mock <IProviderSourceDatasetBulkRepository>().Object)); }
public async Task SaveVersions_GivenPublishedProviderResults_EnsuresSavesWithCorrectParameters() { //Arrange const string providerId = "123"; const string fundingPeriodId = "456"; const string fundingStreamId = "789"; string partitionKey = $"publishedprovider-{providerId}-{fundingPeriodId}-{fundingStreamId}"; IEnumerable <PublishedProvider> publishedProviders = new[] { new PublishedProvider { Current = new PublishedProviderVersion { ProviderId = providerId, FundingPeriodId = fundingPeriodId, FundingStreamId = fundingStreamId } } }; ILogger logger = CreateLogger(); IVersionBulkRepository <PublishedProviderVersion> versionBulkRepository = CreateVersionBulkRepository(); PublishedProviderVersioningService service = CreateVersioningService( logger, versionBulkRepository: versionBulkRepository); //Act await service.SaveVersions(publishedProviders); //Assert await versionBulkRepository .Received(1) .SaveVersion(Arg.Is(publishedProviders.First().Current), Arg.Is(partitionKey)); }