コード例 #1
0
        public async Task Call_DocumentProcessor_for_each_observed_document()
        {
            var sut = new ConcurrentPipelineObserver(_documentProcessor,
                                                     _onPipelineCompleted,
                                                     _onPipelineError,
                                                     1);

            _source.Subscribe(sut);

            await _tcs.Task;
            await _documentProcessor.Received(_maxConcurrency).RunAsync(_testDocument);
        }
コード例 #2
0
        public async Task Call_onError_handler_if_observable_throws()
        {
            var innerException = new Exception();
            var sut            = new ConcurrentPipelineObserver(_documentProcessor,
                                                                _onPipelineCompleted,
                                                                _onPipelineError,
                                                                1);

            Observable.Throw <Document>(innerException).Subscribe(sut);

            var pipelineException = await Assert.ThrowsAsync <PipelineException>(async() => await _tcs.Task);

            Assert.Same(innerException, pipelineException.InnerException);
        }
コード例 #3
0
        public async Task Call_onComplete_handler_once_only()
        {
            var callCount = 0;

            void OnPipelineCompleted()
            {
                callCount++;
                _tcs.TrySetResult(true);
            }

            var sut = new ConcurrentPipelineObserver(_documentProcessor,
                                                     OnPipelineCompleted,
                                                     _onPipelineError,
                                                     _maxConcurrency);

            _source.Subscribe(sut);

            await _tcs.Task;

            Assert.Equal(1, callCount);
        }