예제 #1
0
 public void sending_a_message_without_handler_should_trow()
 {
     using (var bus = new SimpleMessageQueue(10))
     {
         var ex = Assert.Throws <Exception>(() => bus.Send(new UnHandledMessage()));
         Assert.IsTrue(ex.Message.StartsWith("Missing handler for message"));
     }
 }
예제 #2
0
 public void messages_should_have_only_one_handler()
 {
     using (var bus = new SimpleMessageQueue(10))
     {
         bus.RegisterAssemblyOf <SampleMessageHandler>();
         var ex = Assert.Throws <TooManyMessageHandlersException>(() => bus.Send(new CommandWithMultipleHandlers()));
     }
 }
예제 #3
0
        public void all_messages_should_have_been_handled_after_queue_shutdown()
        {
            SampleMessageHandler.Counter = 0;
            using (var bus = new SimpleMessageQueue(200))
            {
                SampleMessageHandler.ApplicationBus = bus;
                bus.RegisterAssemblyOf <SampleMessageHandler>();

                bus.Send(new SampleMessage("Message 1"));
                bus.Send(new SampleMessage("Message 2"));
                bus.Send(new SampleMessage("Message 3"));
                bus.Send(new SampleMessage("Message 4"));
            }

            // 4*2 (parent + child) + 3 * 2 (retries for Chaos Monkey generated failures)
            Assert.AreEqual(8 + 6, SampleMessageHandler.Counter);
        }