Esempio n. 1
0
        public async Task Websocket_stream_should_work_when_used_by_multiple_flows()
        {
            // Arrange
            _connectCallback = (source, sink) =>
            {
                _fromClient2 = source.RunWith(this.SinkProbe <ISignalREvent>(), Sys.Materializer());
                _toClient2   = sink.RunWith(this.SourceProbe <ISignalRResult>(), Sys.Materializer());
            };

            await ConnectAsync(msg => Log.Info(msg));

            var data1 = _fromClient.RequestNext();
            var data2 = _fromClient2.RequestNext();

            data1.Should().BeOfType <Connected>();
            data2.Should().BeOfType <Connected>();

            await _connection.InvokeAsync(nameof(IServerSource.Send), "payload");

            data1 = _fromClient.RequestNext();
            data2 = _fromClient2.RequestNext();

            data1.Should().BeOfType <Received>();
            data2.Should().BeOfType <Received>();

            ((Received)data1).Data.ToString().Should().Be("payload");
            ((Received)data2).Data.ToString().Should().Be("payload");
        }
Esempio n. 2
0
        public void Connect(Source <ISignalREvent, NotUsed> source, Sink <ISignalRResult, NotUsed> sink)
        {
            _fromClient = source.RunWith(this.SinkProbe <ISignalREvent>(), Sys.Materializer());
            _toClient   = sink.RunWith(this.SourceProbe <ISignalRResult>(), Sys.Materializer());

            _connectCallback?.Invoke(source, sink);
            _connected = true;
        }
        public BatchWriteStageSpec(ITestOutputHelper output) : base(output: output)
        {
            this.materializer = Sys.Materializer();
            this.settings     = new DurableEventWriterSettings(Sys.Settings.Config);

            this.src = this.CreatePublisherProbe <ImmutableArray <DurableEvent> >();
            this.snk = this.CreateSubscriberProbe <IEnumerable <DurableEvent> >();

            Source.FromPublisher(this.src)
            .Via(Flow.FromGraph(new BatchWriteStage(ec => Writer(ec))))
            .RunWith(Sink.FromSubscriber(this.snk), this.materializer);
        }