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); }
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() }); }