public override void OnNext(TSource value) { if (_forward) { HalfSerializer.ForwardOnNext(this, value, ref _halfSerializer, ref _error); } }
public void HalfSerializer_OnNext() { HalfSerializer.ForwardOnNext(consumer, 1, ref wip, ref error); Assert.Equal(0, wip); Assert.Null(error); Assert.Equal(1, consumer.items.Count); Assert.Equal(1, consumer.items[0]); Assert.Equal(0, consumer.done); Assert.Null(consumer.exc); }
public void HalfSerializer_OnNext() { HalfSerializer.ForwardOnNext(_consumer, 1, ref _wip, ref _error); Assert.Equal(0, _wip); Assert.Null(_error); Assert.Equal(1, _consumer.Items.Count); Assert.Equal(1, _consumer.Items[0]); Assert.Equal(0, _consumer.Done); Assert.Null(_consumer.Exc); }
public void HalfSerializer_OnCompleted() { HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error); Assert.Equal(1, _wip); Assert.Equal(_error, ExceptionHelper.Terminated); HalfSerializer.ForwardOnNext(_consumer, 2, ref _wip, ref _error); Assert.Equal(0, _consumer.Items.Count); Assert.Equal(1, _consumer.Done); Assert.Null(_consumer.Exc); }
public void HalfSerializer_OnCompleted() { HalfSerializer.ForwardOnCompleted(consumer, ref wip, ref error); Assert.Equal(1, wip); Assert.Equal(error, ExceptionHelper.Terminated); HalfSerializer.ForwardOnNext(consumer, 2, ref wip, ref error); Assert.Equal(0, consumer.items.Count); Assert.Equal(1, consumer.done); Assert.Null(consumer.exc); }
public void HalfSerializer_OnNext_Reentrant_OnCompleted() { var c = new ReentrantConsumer(this, false); HalfSerializer.ForwardOnNext(c, 1, ref _wip, ref _error); Assert.Equal(1, _wip); Assert.Equal(_error, ExceptionHelper.Terminated); Assert.Equal(1, _consumer.Items.Count); Assert.Equal(1, _consumer.Items[0]); Assert.Equal(1, _consumer.Done); Assert.Null(_consumer.Exc); }
public void HalfSerializer_OnNext_Reentrant_Error() { var c = new ReentrantConsumer(this, true); HalfSerializer.ForwardOnNext(c, 1, ref wip, ref error); Assert.Equal(1, wip); Assert.Equal(error, ExceptionHelper.Terminated); Assert.Equal(1, consumer.items.Count); Assert.Equal(1, consumer.items[0]); Assert.Equal(0, consumer.done); Assert.Equal(c.x, consumer.exc); }
public void HalfSerializer_OnError() { var ex = new InvalidOperationException(); HalfSerializer.ForwardOnError(_consumer, ex, ref _wip, ref _error); Assert.Equal(1, _wip); Assert.Equal(_error, ExceptionHelper.Terminated); HalfSerializer.ForwardOnNext(_consumer, 2, ref _wip, ref _error); Assert.Equal(0, _consumer.Items.Count); Assert.Equal(0, _consumer.Done); Assert.Equal(ex, _consumer.Exc); }
public void HalfSerializer_OnError() { var ex = new InvalidOperationException(); HalfSerializer.ForwardOnError(consumer, ex, ref wip, ref error); Assert.Equal(1, wip); Assert.Equal(error, ExceptionHelper.Terminated); HalfSerializer.ForwardOnNext(consumer, 2, ref wip, ref error); Assert.Equal(0, consumer.items.Count); Assert.Equal(0, consumer.done); Assert.Equal(ex, consumer.exc); }
public void HalfSerializer_OnCompleted_Ignore_Further_Events() { HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error); Assert.Equal(1, _wip); Assert.Equal(_error, ExceptionHelper.Terminated); HalfSerializer.ForwardOnNext(_consumer, 2, ref _wip, ref _error); var ex2 = new NotSupportedException(); HalfSerializer.ForwardOnError(_consumer, ex2, ref _wip, ref _error); HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error); Assert.Equal(0, _consumer.Items.Count); Assert.Equal(1, _consumer.Done); Assert.Null(_consumer.Exc); }
public void HalfSerializer_OnError_Ignore_Further_Events() { var ex = new InvalidOperationException(); HalfSerializer.ForwardOnError(consumer, ex, ref wip, ref error); Assert.Equal(1, wip); Assert.Equal(error, ExceptionHelper.Terminated); HalfSerializer.ForwardOnNext(consumer, 2, ref wip, ref error); var ex2 = new NotSupportedException(); HalfSerializer.ForwardOnError(consumer, ex2, ref wip, ref error); HalfSerializer.ForwardOnCompleted(consumer, ref wip, ref error); Assert.Equal(0, consumer.items.Count); Assert.Equal(0, consumer.done); Assert.Equal(ex, consumer.exc); }
public void OnNext(T value) { HalfSerializer.ForwardOnNext(this, value, ref _halfSerializer, ref _error); }