Esempio n. 1
0
        public async Task ChannelSource_must_read_incoming_events()
        {
            var tcs     = new CancellationTokenSource(TimeSpan.FromSeconds(5));
            var channel = Channel.CreateBounded <int>(3);
            await channel.Writer.WriteAsync(1, tcs.Token);

            await channel.Writer.WriteAsync(2, tcs.Token);

            await channel.Writer.WriteAsync(3, tcs.Token);

            var probe = this.CreateManualSubscriberProbe <int>();

            ChannelSource.FromReader <int>(channel)
            .To(Sink.FromSubscriber(probe))
            .Run(_materializer);

            var subscription = probe.ExpectSubscription();

            subscription.Request(5);

            probe.ExpectNext(1);
            probe.ExpectNext(2);

            await channel.Writer.WriteAsync(4, tcs.Token);

            await channel.Writer.WriteAsync(5, tcs.Token);

            probe.ExpectNext(3);
            probe.ExpectNext(4);
            probe.ExpectNext(5);
        }
 public void Resolve(ChannelResolveParameters settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException(nameof(settings));
     }
     ChannelSource.Resolve(settings.Commit);
 }
 public void Reset(ChannelResetParameters settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException(nameof(settings));
     }
     ChannelSource.Reset(settings.MessageSequenceNumber.Value);
 }
 public void Stop(ChannelStopParameters settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException(nameof(settings));
     }
     ChannelSource.Stop(settings.Mode, settings.SetInactive);
 }
Esempio n. 5
0
        public void ChannelSource_must_complete_after_channel_completes()
        {
            var channel = Channel.CreateUnbounded <int>();
            var probe   = this.CreateManualSubscriberProbe <int>();

            ChannelSource.FromReader <int>(channel)
            .To(Sink.FromSubscriber(probe))
            .Run(_materializer);

            var subscription = probe.ExpectSubscription();

            subscription.Request(2);

            channel.Writer.Complete();

            probe.ExpectComplete();
        }
Esempio n. 6
0
        public void ChannelSource_must_complete_after_channel_fails()
        {
            var channel = Channel.CreateUnbounded <int>();
            var probe   = this.CreateManualSubscriberProbe <int>();
            var failure = new Exception("BOOM!");

            ChannelSource.FromReader <int>(channel)
            .To(Sink.FromSubscriber(probe))
            .Run(_materializer);

            var subscription = probe.ExpectSubscription();

            subscription.Request(2);

            channel.Writer.Complete(failure);

            probe.ExpectError().InnerException.Should().Be(failure);
        }
Esempio n. 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QualifiedChannelId"/> struct.
 /// </summary>
 /// <param name="id">The channel id.</param>
 /// <param name="source">A value indicating where the channel originated.</param>
 public QualifiedChannelId(ulong id, ChannelSource source)
 {
     this.Id     = id;
     this.Source = source;
 }
 public void Start()
 {
     ChannelSource.Start();
 }
 public void RefreshInfo()
 {
     ChannelSource.RefreshInfo();
     OnPropertyChanged(nameof(SupportResolve));
     OnPropertyChanged(nameof(SupportReset));
 }