예제 #1
0
        public void SqsSource_should_return_events()
        {
            var probe = this.CreateManualSubscriberProbe <Message>();

            client.ReceiveMessageAsync(Arg.Any <ReceiveMessageRequest>())
            .Returns(Task.FromResult(CreateReceiveMessageResponse(10)));

            SqsSource.Create(this.client, TestQueueUrl)
            .To(Sink.FromSubscriber(probe))
            .Run(materializer);

            var sub = probe.ExpectSubscription();

            sub.Request(22);
            for (int i = 0; i < 22; i++)
            {
                probe.ExpectNext((Message msg) => msg.Body == (i % 10).ToString());
            }
            sub.Cancel();
        }
예제 #2
0
        public void SqsSource_when_closeOnEmptyReceive_should_complete_after_returning_empty_result()
        {
            var probe = this.CreateManualSubscriberProbe <Message>();

            client.ReceiveMessageAsync(Arg.Any <ReceiveMessageRequest>())
            .Returns(
                Task.FromResult(CreateReceiveMessageResponse(2)),
                Task.FromResult(CreateReceiveMessageResponse(0)),
                Task.FromResult(CreateReceiveMessageResponse(2)));

            SqsSource.Create(this.client, TestQueueUrl, SqsSourceSettings.Default.WithCloseOnEmptyReceive(true))
            .To(Sink.FromSubscriber(probe))
            .Run(materializer);

            var sub = probe.ExpectSubscription();

            sub.Request(3);
            probe.ExpectNext((Message msg) => msg.Body == "0");
            probe.ExpectNext((Message msg) => msg.Body == "1");
            probe.ExpectComplete();
        }