public void when_receiving_not_registered_command_then_ignores() { var receiverMock = new Mock <SubscriptionReceiver>(this.Settings, this.Topic, this.Subscription, false); var processor = new CommandProcessor(receiverMock.Object, new JsonTextSerializer()); var bus = new CommandBus(new TopicSender(this.Settings, this.Topic), new StandardMetadataProvider(), new JsonTextSerializer()); var e = new ManualResetEventSlim(); var handler = new FooCommandHandler(e); receiverMock.Protected().Setup("InvokeMessageHandler", ItExpr.IsAny <BrokeredMessage>()).Callback(() => e.Set()); processor.Register(handler); processor.Start(); try { bus.Send(new BarCommand()); e.Wait(TimeoutPeriod); // Give the other event handler some time. Thread.Sleep(100); Assert.False(handler.Called); } finally { processor.Stop(); } }
public void when_sending_multiple_commands_then_calls_all_handlers() { var processor = new CommandProcessor(new SubscriptionReceiver(this.Settings, this.Topic, this.Subscription), new JsonTextSerializer()); var bus = new CommandBus(new TopicSender(this.Settings, this.Topic), new StandardMetadataProvider(), new JsonTextSerializer()); var fooEvent = new ManualResetEventSlim(); var fooHandler = new FooCommandHandler(fooEvent); var barEvent = new ManualResetEventSlim(); var barHandler = new BarCommandHandler(barEvent); processor.Register(fooHandler); processor.Register(barHandler); processor.Start(); try { bus.Send(new ICommand[] { new FooCommand(), new BarCommand() }); fooEvent.Wait(TimeoutPeriod); barEvent.Wait(TimeoutPeriod); Assert.True(fooHandler.Called); Assert.True(barHandler.Called); } finally { processor.Stop(); } }
public void when_receiving_command_then_calls_handler() { var processor = new CommandProcessor(new SubscriptionReceiver(this.Settings, this.Topic, this.Subscription), new JsonTextSerializer()); var bus = new CommandBus(new TopicSender(this.Settings, this.Topic), new StandardMetadataProvider(), new JsonTextSerializer()); var e = new ManualResetEventSlim(); var handler = new FooCommandHandler(e); processor.Register(handler); processor.Start(); try { bus.Send(new FooCommand()); e.Wait(TimeoutPeriod); Assert.True(handler.Called); } finally { processor.Stop(); } }
public void when_receiving_not_registered_command_then_ignores() { var receiver = new SubscriptionReceiver(this.Settings, this.Topic, this.Subscription); var processor = new CommandProcessor(receiver, new BinarySerializer()); var bus = new CommandBus(new TopicSender(this.Settings, this.Topic), new MetadataProvider(), new BinarySerializer()); var e = new ManualResetEventSlim(); var handler = new FooCommandHandler(e); receiver.MessageReceived += (sender, args) => e.Set(); processor.Register(handler); processor.Start(); try { bus.Send(new BarCommand()); e.Wait(); // Give the other event handler some time. Thread.Sleep(100); Assert.False(handler.Called); } finally { processor.Stop(); } }