public void Can_Complete_Source()
        {
            _sourceBlock = new SourceBlockImpl(_options);
            _sourceBlock.LinkTo(_outputBlock, _linkOptions);

            for (var i = 0; i < 5; i++)
            {
                if (_items.Count > 0)
                {
                    break;
                }

                _sourceBlock.Completion.Wait(TimeSpan.FromMilliseconds(10));
            }

            _sourceBlock.Complete();
            _outputBlock.Completion.Wait();

            Assert.That(_outputBlock.Completion.Status, Is.EqualTo(TaskStatus.RanToCompletion));
        }
        public void Can_Process()
        {
            _sourceBlock = new SourceBlockImpl(_options);
            _sourceBlock.LinkTo(_outputBlock, _linkOptions);

            for (var i = 0; i < 5; i++)
            {
                if (_items.Count > 0)
                {
                    break;
                }

                // wait while block is initialized
                _sourceBlock.Completion.Wait(TimeSpan.FromMilliseconds(50));
            }

            _sourceBlock.Complete();
            _outputBlock.Completion.Wait();

            Assert.That(_items.Count, Is.GreaterThan(0));
        }
Esempio n. 3
0
 internal override void CompleteBufferOnPredecessorCompletion() => SourceBlock.Complete();