public async Task GivenNoSupportedSearchParameters_WhenRunningReindexJob_ThenJobIsCanceled() { var request = new CreateReindexRequest(); CreateReindexResponse response = await _createReindexRequestHandler.Handle(request, CancellationToken.None); Assert.NotNull(response); Assert.False(string.IsNullOrWhiteSpace(response.Job.JobRecord.Id)); _reindexJobWorker = new ReindexJobWorker( () => _scopedOperationDataStore, Options.Create(_jobConfiguration), InitializeReindexJobTask, _searchParameterOperations, NullLogger <ReindexJobWorker> .Instance); await _reindexJobWorker.Handle(new SearchParametersInitializedNotification(), CancellationToken.None); var cancellationTokenSource = new CancellationTokenSource(); try { await PerformReindexingOperation(response, OperationStatus.Canceled, cancellationTokenSource); } finally { cancellationTokenSource.Cancel(); } }
public async Task GivenNoMatchingResources_WhenRunningReindexJob_ThenJobIsCompleted() { var searchParam = _supportedSearchParameterDefinitionManager.GetSearchParameter(new Uri("http://hl7.org/fhir/SearchParameter/Measure-name")); searchParam.IsSearchable = false; var request = new CreateReindexRequest(); CreateReindexResponse response = await _createReindexRequestHandler.Handle(request, CancellationToken.None); Assert.NotNull(response); Assert.False(string.IsNullOrWhiteSpace(response.Job.JobRecord.Id)); _reindexJobWorker = new ReindexJobWorker( () => _scopedOperationDataStore, Options.Create(_jobConfiguration), InitializeReindexJobTask, _searchParameterOperations, NullLogger <ReindexJobWorker> .Instance); await _reindexJobWorker.Handle(new SearchParametersInitializedNotification(), CancellationToken.None); var cancellationTokenSource = new CancellationTokenSource(); try { await PerformReindexingOperation(response, OperationStatus.Completed, cancellationTokenSource); Assert.True(searchParam.IsSearchable); } finally { cancellationTokenSource.Cancel(); searchParam.IsSearchable = true; } }
private async Task <CreateReindexResponse> SetUpForReindexing(CreateReindexRequest request = null) { if (request == null) { request = new CreateReindexRequest(); } CreateReindexResponse response = await _createReindexRequestHandler.Handle(request, CancellationToken.None); Assert.NotNull(response); Assert.False(string.IsNullOrWhiteSpace(response.Job.JobRecord.Id)); _reindexJobWorker = new ReindexJobWorker( () => _scopedOperationDataStore, Options.Create(_jobConfiguration), InitializeReindexJobTask, _searchParameterOperations, NullLogger <ReindexJobWorker> .Instance); await _reindexJobWorker.Handle(new SearchParametersInitializedNotification(), CancellationToken.None); return(response); }
public ReindexJobWorkerTests() { _reindexJobConfiguration.MaximumNumberOfConcurrentJobsAllowed = DefaultMaximumNumberOfConcurrentJobAllowed; _reindexJobConfiguration.JobHeartbeatTimeoutThreshold = DefaultJobHeartbeatTimeoutThreshold; _reindexJobConfiguration.JobPollingFrequency = DefaultJobPollingFrequency; _reindexJobTaskFactory().Returns(_task); var scopedOperationDataStore = Substitute.For <IScoped <IFhirOperationDataStore> >(); scopedOperationDataStore.Value.Returns(_fhirOperationDataStore); var searchParameterOperations = Substitute.For <ISearchParameterOperations>(); _reindexJobWorker = new ReindexJobWorker( () => scopedOperationDataStore, Options.Create(_reindexJobConfiguration), _reindexJobTaskFactory, searchParameterOperations, NullLogger <ReindexJobWorker> .Instance); _reindexJobWorker.Handle(new Messages.Search.SearchParametersInitializedNotification(), CancellationToken.None); _cancellationToken = _cancellationTokenSource.Token; }