public void Bus_AsyncSubscriberException_ErrorHandlerCalled() { ImportiantData data = new ImportiantData { Info = "Valuable information" }; // Second bus subscribes to message after it was dispatched and should receive it using (var bus = new MessageBus.Core.RabbitMQBus()) { using (IAsyncSubscriber subscriber = bus.CreateAsyncSubscriber(c => c.SetReceiveSelfPublish().UseErrorSubscriber(this))) { subscriber.Subscribe <ImportiantData>(Subscribe); subscriber.Open(); using (IPublisher publisher = bus.CreatePublisher()) { publisher.Send(data); } bool wait = _ev.WaitOne(TimeSpan.FromSeconds(5)); wait.Should().BeTrue(); } } }
private async Task Subscribe(ImportiantData data) { await Task.Run(() => { throw new Exception(); }); }
private async Task Subscribe(ImportiantData data) { await Task.Run(() => { throw new Exception(); }); }
public void Bus_AsyncSubscriberException_ErrorHandlerCalled() { ImportiantData data = new ImportiantData { Info = "Valuable information" }; // Second bus subscribes to message after it was dispatched and should receive it using (var bus = new MessageBus.Core.RabbitMQBus()) { using (IAsyncSubscriber subscriber = bus.CreateAsyncSubscriber(c => c.SetReceiveSelfPublish().UseErrorSubscriber(this))) { subscriber.Subscribe<ImportiantData>(Subscribe); subscriber.Open(); using (IPublisher publisher = bus.CreatePublisher()) { publisher.Send(data); } bool wait = _ev.WaitOne(TimeSpan.FromSeconds(5)); wait.Should().BeTrue(); } } }
public void Bus_DurableBus_AutomaticalyCreated_SubscribesAfterPublishing_MessagesShouldBeReceived() { // Create a subscriber in order to create queue and bindings then dispose of it // queue and bindings should remain using (var bus = new MessageBus.Core.RabbitMQBus()) { using (ISubscriber subscriber = bus.CreateSubscriber(c => c.UseDurableQueue(AutomaticallyCreatedQueueName, true, true))) { subscriber.Subscribe((Action <ImportiantData>)(p => { })); subscriber.Open(); subscriber.Close(); } } ImportiantData data = new ImportiantData { Info = "Valuable information" }; // Dispatch message using (var bus = new MessageBus.Core.RabbitMQBus()) { using (IPublisher publisher = bus.CreatePublisher()) { publisher.Send(data); } } ImportiantData expected = null; ManualResetEvent ev = new ManualResetEvent(false); // Second bus subscribes to message after it was dispatched and should receive it using (var bus = new MessageBus.Core.RabbitMQBus()) { using (ISubscriber subscriber = bus.CreateSubscriber(c => c.UseDurableQueue(AutomaticallyCreatedQueueName, true, true))) { subscriber.Subscribe <ImportiantData>(p => { expected = p; ev.Set(); }); subscriber.Open(); bool wait = ev.WaitOne(TimeSpan.FromSeconds(5)); wait.Should().BeTrue(); } } expected.Should().NotBeNull(); expected.ShouldBeEquivalentTo(data); }
public void Bus_DurableBus_SubscribesAfterPublishing_MessagesShouldBeReceived() { ImportiantData data = new ImportiantData { Info = "Valuable information" }; // Dispatch message using (var bus = new MessageBus.Core.RabbitMQBus()) { using (IPublisher publisher = bus.CreatePublisher()) { publisher.Send(data); } } ImportiantData expected = null; ManualResetEvent ev = new ManualResetEvent(false); // Second bus subscribes to message after it was dispatched and should receive it using (var bus = new MessageBus.Core.RabbitMQBus()) { using (ISubscriber subscriber = bus.CreateSubscriber(c => c.UseDurableQueue(QueueName))) { subscriber.Subscribe<ImportiantData>(p => { expected = p; ev.Set(); }); subscriber.Open(); bool wait = ev.WaitOne(TimeSpan.FromSeconds(5)); wait.Should().BeTrue(); } } expected.Should().NotBeNull(); expected.ShouldBeEquivalentTo(data); }
private async Task Subscribe(ImportiantData data) { throw new Exception(); }