Exemplo 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");
        }
Exemplo 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;
        }
Exemplo n.º 3
0
        private EventEnvelope ExpectEnvelope(TestSubscriber.Probe <EventEnvelope> probe, string persistenceId, long sequenceNr, string @event)
        {
            var envelope = probe.ExpectNext <EventEnvelope>(e => true);

            envelope.PersistenceId.Should().Be(persistenceId);
            envelope.SequenceNr.Should().Be(sequenceNr);
            envelope.Event.Should().Be(@event);
            return(envelope);
        }
Exemplo n.º 4
0
            public override object Create(MaterializationContext context, out TestSubscriber.Probe <ByteString> materializer)
            {
                var promise = _properties.Probes[_properties.ProbesWriterTop];
                var probe   = TestSubscriber.CreateSubscriberProbe <ByteString>(_properties.Kit);

                promise.SetResult(probe);
                _properties.ProbesWriterTop++;
                materializer = probe;
                return(probe);
            }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 public SubFlowState(TestSubscriber.Probe <ByteString> probe, bool hasDemand, ByteString firstElement)
 {
     Probe        = probe;
     HasDemand    = hasDemand;
     FirstElement = firstElement;
 }