Пример #1
0
        public void SqsAckFlow_default_stream_should_react_on_Ignore_commands()
        {
            var publisher  = this.CreatePublisherProbe <MessageAction>();
            var subscriber = this.CreateSubscriberProbe <ISqsAckResult>();

            Source.FromPublisher(publisher)
            .Via(SqsAckFlow.Default(client, TestQueueUrl, SqsAckSettings.Default.WithMaxInFlight(1)))
            .To(Sink.FromSubscriber(subscriber))
            .Run(materializer);

            subscriber.Request(3);

            publisher.SendNext(MessageAction.Ignore(Message("a-1")));
            publisher.SendNext(MessageAction.Ignore(Message("a-2")));

            subscriber.ExpectNext <ISqsAckResult>(ack => ack is SqsIgnoreResult r && r.Action.Message.ReceiptHandle == "a-1");
            subscriber.ExpectNext <ISqsAckResult>(ack => ack is SqsIgnoreResult r && r.Action.Message.ReceiptHandle == "a-2");

            subscriber.Cancel();
        }