protected async Task Act()
        {
            _handler = new ExactlyOnceHandlerWithTimeout();

            var fixture = new JustSayingFixture(OutputHelper);

            var publisher = fixture.Builder()
                            .WithSnsMessagePublisher <SimpleMessage>();

            var bus = fixture.Builder()
                      .WithMonitoring(Substitute.For <IMessageMonitor>())
                      .WithMessageLockStoreOf(new MessageLockStore())
                      .WithSqsTopicSubscriber()
                      .IntoQueue(fixture.UniqueName)
                      .ConfigureSubscriptionWith(cfg => cfg.MessageRetention = TimeSpan.FromSeconds(60))
                      .WithMessageHandler(_handler);

            publisher.StartListening();
            bus.StartListening();

            var message = new SimpleMessage {
                Id = Guid.NewGuid()
            };

            await publisher.PublishAsync(message);

            await publisher.PublishAsync(message);
        }
Beispiel #2
0
        protected async Task Act()
        {
            _handler1 = new ExactlyOnceHandlerWithTimeout();
            _handler2 = new ExactlyOnceHandlerNoTimeout();

            var fixture = new JustSayingFixture(OutputHelper);

            var publisher = fixture.Builder()
                            .ConfigurePublisherWith(_ => { })
                            .WithSnsMessagePublisher <SimpleMessage>();

            var subscribers = fixture.Builder()
                              .WithMonitoring(Substitute.For <IMessageMonitor>())
                              .WithMessageLockStoreOf(new MessageLockStore())
                              .WithSqsTopicSubscriber().IntoQueue(fixture.UniqueName)
                              .WithMessageHandlers(_handler1, _handler2);

            publisher.StartListening();
            subscribers.StartListening();

            await publisher.PublishAsync(new SimpleMessage { Id = Guid.NewGuid() });
        }