public void when_sending_multiple_events_then_calls_all_handlers() { var processor = new EventProcessor(new SubscriptionReceiver(Settings, Topic, Subscription), new JsonTextSerializer()); var bus = new EventBus(new TopicSender(Settings, Topic), new StandardMetadataProvider(), new JsonTextSerializer()); var fooEvent = new ManualResetEventSlim(); var fooHandler = new FooEventHandler(fooEvent); var barEvent = new ManualResetEventSlim(); var barHandler = new BarEventHandler(barEvent); processor.Register(fooHandler); processor.Register(barHandler); processor.Start(); try { bus.Publish(new IEvent[] { new FooEvent(), new BarEvent() }); fooEvent.Wait(TimeoutPeriod); barEvent.Wait(TimeoutPeriod); Assert.True(fooHandler.Called); Assert.True(barHandler.Called); } finally { processor.Stop(); } }
public void when_receiving_not_registered_event_then_ignores() { var receiverMock = new Mock <SubscriptionReceiver>(Settings, Topic, Subscription, false); var processor = new EventProcessor(receiverMock.Object, new JsonTextSerializer()); var bus = new EventBus(new TopicSender(Settings, Topic), new StandardMetadataProvider(), new JsonTextSerializer()); var e = new ManualResetEventSlim(); var handler = new FooEventHandler(e); receiverMock.Protected().Setup("InvokeMessageHandler", ItExpr.IsAny <BrokeredMessage>()).Callback(() => e.Set()); processor.Register(handler); processor.Start(); try { bus.Publish(new BarEvent()); e.Wait(TimeoutPeriod); // Give the other event handler some time. Thread.Sleep(100); Assert.False(handler.Called); } finally { processor.Stop(); } }
public void when_receiving_event_then_calls_handler() { var processor = new EventProcessor(new SubscriptionReceiver(this.Settings, this.Topic, this.Subscription), new JsonTextSerializer()); var bus = new EventBus(new TopicSender(this.Settings, this.Topic), new StandardMetadataProvider(), new JsonTextSerializer()); var e = new ManualResetEventSlim(); var handler = new FooEventHandler(e); processor.Register(handler); processor.Start(); try { bus.Publish(new FooEvent()); e.Wait(TimeoutPeriod); Assert.True(handler.Called); } finally { processor.Stop(); } }
public void when_receiving_not_registered_event_then_ignores() { var receiver = new SubscriptionReceiver(this.Settings, this.Topic, this.Subscription); var processor = new EventProcessor(receiver, new BinarySerializer()); var bus = new EventBus(new TopicSender(this.Settings, this.Topic), new MetadataProvider(), new BinarySerializer()); var e = new ManualResetEventSlim(); var handler = new FooEventHandler(e); receiver.MessageReceived += (sender, args) => e.Set(); processor.Register(handler); processor.Start(); try { bus.Publish(new BarEvent()); e.Wait(); // Give the other event handler some time. Thread.Sleep(100); Assert.False(handler.Called); } finally { processor.Stop(); } }
public void CanRegisterHandlerWithInheritedEvents() { var objHandler = new GenericObjectHandler(); Events.RegisterHandler(objHandler); var fooHandler = new FooEventHandler(); Events.RegisterHandler(fooHandler); var childHandler = new FooChildEventHandler(); Events.RegisterHandler(childHandler); Events.Publish(new FooEvent()); Events.Publish(new FooChildEvent()); Events.Publish(new BarEvent()); Assert.Equal(3, objHandler.NumberOfEvents); Assert.Equal(2, fooHandler.NumberOfEvents); Assert.Equal(1, childHandler.NumberOfEvents); }