Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
        }