Exemple #1
0
        public void cancelled_messages_return_to_the_head_of_the_queue()
        {
            Assert.That(subject.Get("dst", out var tag1), Is.EqualTo("Hello"));
            subject.Send("Example.Types.IFile", null, null, null, "SecondMessage");

            subject.Cancel(tag1.DeliveryTag);
            Assert.That(subject.Get("dst", out tag1), Is.EqualTo("Hello"));
            Assert.That(subject.Get("dst", out var tag2), Is.EqualTo("SecondMessage"));

            subject.Finish(tag1.DeliveryTag);
            subject.Finish(tag2.DeliveryTag);
        }
Exemple #2
0
        public void If_I_make_a_link_twice_I_only_get_one_copy_of_each_message()
        {
            router.AddSource("src", null);
            router.AddDestination("dst");

            router.Link("src", "dst");
            router.Link("src", "dst");

            router.Send("src", null, null, null, "Hello");

            Assert.That(router.GetAndFinish("dst", out _), Is.EqualTo("Hello"));
            Assert.That(router.GetAndFinish("dst", out _), Is.Null);
        }
Exemple #3
0
 /// <summary>
 /// Immediately send a prepared message.
 /// </summary>
 /// <param name="message">A message created by PrepareForSend()</param>
 public void SendPrepared([NotNull] IPreparedMessage message)
 {
     if (message == null)
     {
         throw new ArgumentNullException(nameof(message));
     }
     messageRouter.Send(message.TypeName, message.ContractType, _applicationGroupName, message.CorrelationId, message.SerialisedMessage);
 }
        public void When_sending_a_message_with_mulitple_inheritance_should_receive_one_copy_at_base_level()
        {
            subject.BuildRoutes(typeof(IFile));

            router.AddDestination("dst");
            router.Link("Example.Types.IMsg", "dst");

            router.Send("Example.Types.IFile", null, null, null, "Hello");

            Assert.That(router.GetAndFinish("dst", out _), Is.EqualTo("Hello"));
            Assert.That(router.GetAndFinish("dst", out _), Is.Null);
        }
        public override GenerateScriptsResponse GenerateScripts(Workspace workspace, string projPath, bool force)
        {
            GenerateScriptsRequest message = new GenerateScriptsRequest(workspace, projPath, force);
            var result = _messageRouter.Send(message);

            return(GenerateScriptsResponse.Read(result));
        }
        public void SetUp()
        {
            var longTermConnection = ConfigurationHelpers.ChannelWithAppConfigSettings();
            var shortTermConnection = ConfigurationHelpers.FreshConnectionFromAppConfig();
            subject = new RabbitRouter(longTermConnection, shortTermConnection);

            typeRouter = new TypeRouter(subject);
            typeRouter.BuildRoutes(typeof(IFile));

            subject.AddDestination("dst");
            subject.Link("Example.Types.IMsg", "dst");
            subject.Send("Example.Types.IFile", "Hello");
        }
Exemple #7
0
        public void SetUp()
        {
            var longTermConnection  = ConfigurationHelpers.ChannelWithAppConfigSettings();
            var shortTermConnection = ConfigurationHelpers.FreshConnectionFromAppConfig();

            subject = new RabbitRouter(longTermConnection, shortTermConnection);

            typeRouter = new TypeRouter(subject);
            typeRouter.BuildRoutes(typeof(IFile));

            subject.AddDestination("dst");
            subject.Link("Example.Types.IMsg", "dst");
            subject.Send("Example.Types.IFile", null, null, null, "Hello");
        }
        private static void DoSend(object o)
        {
            SendWrapper wrapper = o as SendWrapper;

            if (wrapper != null)
            {
                try
                {
                    MessageManager.Send(wrapper.Sender, wrapper.Message);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.WriteLine(ex.Message);
                }
            }
        }
Exemple #9
0
        public MessageSchedule(IPriortyQueue <MessageInfo <TMessage> > queue, IMessageRouter host)
        {
            if (!queue.IsSynchronized)
            {
                MessageQueue = PriorityQueue <MessageInfo <TMessage> > .Synchronized(queue);
            }
            else
            {
                MessageQueue = queue;
            }

            thread = new Thread(delegate()
            {
                IsRuning = true;
                MessageInfo <TMessage> item = null;
                while (true)
                {
                    if (!IsRuning)
                    {
                        return;
                    }

                    while (MessageQueue.Count > 0)
                    {
                        //Thread.Sleep(MillisecondsTimeout);
                        if ((item = MessageQueue.Pop()) != null)
                        {
                            host.Send(item.Sender, item.Message, true);
                        }
                        Thread.Sleep(MillisecondsTimeout);
                    }
                }
            });
            thread.IsBackground = true;
            thread.Name         = "MessageManager.MessageQueue.Thread";
            thread.Start();
        }
        public void Can_create_a_single_exchange_and_queue_and_send_a_simple_message()
        {
            router.AddSource("exchange_A", null);
            router.AddDestination("queue_A");
            router.Link("exchange_A", "queue_A");

            router.Send("exchange_A", null, null, null, "Hello, world");

            var message = router.GetAndFinish("queue_A", out _);

            Assert.That(message, Is.EqualTo("Hello, world"));
        }