コード例 #1
0
        protected AmqpNmsMessageFacade CreateNewMessageFacade()
        {
            AmqpNmsMessageFacade facade = new AmqpNmsMessageFacade();

            facade.Initialize(CreateMockAmqpConnection());
            return(facade);
        }
コード例 #2
0
        protected AmqpNmsMessageFacade CreateReceivedMessageFacade(IAmqpConsumer consumer, global::Amqp.Message message)
        {
            AmqpNmsMessageFacade facade = new AmqpNmsMessageFacade();

            facade.Initialize(consumer, message);
            return(facade);
        }
コード例 #3
0
        private AmqpNmsMessageFacade CreateMessageFacadeFromTypeId(sbyte msgType)
        {
            AmqpNmsMessageFacade message;
            switch (msgType)
            {
                case MessageSupport.JMS_TYPE_MSG:
                    message = new AmqpNmsMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_BYTE:
                    message = new AmqpNmsBytesMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_TXT:
                    message = new AmqpNmsTextMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_OBJ:
                    message = new AmqpNmsObjectMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_STRM:
                    message = new AmqpNmsStreamMessageFacade();
                    break;
                case MessageSupport.JMS_TYPE_MAP:
                    message = new AmqpNmsMapMessageFacade();
                    break;
                default:
                    throw new ArgumentOutOfRangeException(nameof(msgType));
            }

            message.Initialize(CreateMockAmqpConnection());

            return message;
        }
コード例 #4
0
        protected AmqpNmsMessageFacade CreateReceivedMessageFacade(global::Amqp.Message message)
        {
            AmqpNmsMessageFacade facade             = new AmqpNmsMessageFacade();
            IAmqpConnection      mockAmqpConnection = CreateMockAmqpConnection();
            var mockConsumer = CreateMockConsumer(mockAmqpConnection);

            facade.Initialize(mockConsumer, message);
            return(facade);
        }
コード例 #5
0
        public void TestNMSDeliveryTime_Set_ShouldHaveMessageAnnotations()
        {
            AmqpNmsMessageFacade msg = new AmqpNmsMessageFacade();

            Mock <IAmqpConnection> mockAmqpConnection = new Mock <IAmqpConnection>();

            msg.Initialize(mockAmqpConnection.Object);
            var deliveryTime = DateTime.UtcNow.AddMinutes(2);

            msg.DeliveryTime = deliveryTime;

            Assert.AreEqual(new DateTimeOffset(deliveryTime).ToUnixTimeMilliseconds(), msg.MessageAnnotations[SymbolUtil.NMS_DELIVERY_TIME]);
        }
コード例 #6
0
        public static IDestination GetReplyTo(AmqpNmsMessageFacade message, IAmqpConnection connection, IDestination consumerDestination)
        {
            string replyTo = message.ReplyToAddress;

            object typeAnnotation = message.GetMessageAnnotation(SymbolUtil.JMSX_OPT_REPLY_TO);

            if (typeAnnotation != null)
            {
                byte   type = Convert.ToByte(typeAnnotation);
                string name = StripPrefixIfNecessary(replyTo, connection, type);
                return(CreateDestination(name, type));
            }
            else
            {
                string name = StripPrefixIfNecessary(replyTo, connection);
                return(CreateDestination(name, consumerDestination, true));
            }
        }
コード例 #7
0
        public void TestTimeToLiveSetFromMessageWithNonDefaultValue()
        {
            var message = new global::Amqp.Message
            {
                Header = new Header { Ttl = 65535 },
                BodySection = new AmqpValue { Value = "test" }
            };

            NmsMessage nmsMessage = AmqpCodec.DecodeMessage(CreateMockConsumer(), message).AsMessage();

            Assert.NotNull(nmsMessage);
            Assert.IsInstanceOf<NmsMessage>(nmsMessage);
            Assert.AreEqual(TimeSpan.FromMilliseconds(65535), nmsMessage.NMSTimeToLive);

            AmqpNmsMessageFacade facade = nmsMessage.Facade as AmqpNmsMessageFacade;
            Assert.NotNull(facade);
            Assert.AreEqual(TimeSpan.FromMilliseconds(65535), facade.NMSTimeToLive);
        }
コード例 #8
0
        public void TestMessagePrioritySetFromMessageWithNonDefaultValue()
        {
            var message = new global::Amqp.Message
            {
                Header = new Header { Priority = 8 },
                BodySection = new AmqpValue { Value = "test" }
            };

            NmsMessage nmsMessage = AmqpCodec.DecodeMessage(CreateMockConsumer(), message).AsMessage();

            Assert.NotNull(nmsMessage);
            Assert.IsInstanceOf<NmsMessage>(nmsMessage);
            Assert.AreEqual(MsgPriority.VeryHigh, nmsMessage.NMSPriority);

            AmqpNmsMessageFacade facade = nmsMessage.Facade as AmqpNmsMessageFacade;
            Assert.NotNull(facade);
            Assert.AreEqual(MsgPriority.VeryHigh, facade.NMSPriority);
        }
コード例 #9
0
        public void TestDeliveryCountSetFromMessageWithNonDefaultValue()
        {
            var message = new global::Amqp.Message
            {
                Header = new Header { DeliveryCount = 2 },
                BodySection = new AmqpValue { Value = "test" }
            };

            NmsMessage nmsMessage = AmqpCodec.DecodeMessage(CreateMockConsumer(), message).AsMessage();

            Assert.NotNull(nmsMessage);
            Assert.IsInstanceOf<NmsMessage>(nmsMessage);
            Assert.IsTrue(nmsMessage.NMSRedelivered);

            AmqpNmsMessageFacade facade = nmsMessage.Facade as AmqpNmsMessageFacade;
            Assert.NotNull(facade);
            Assert.AreEqual(2, facade.RedeliveryCount);
            Assert.AreEqual(2, facade.Message.Header.DeliveryCount);
        }
コード例 #10
0
        private void DoTestNMSMessageEncodingAddsProperMessageAnnotations(sbyte msgType, byte?toType, byte?replyToType)
        {
            AmqpNmsMessageFacade messageFacade = CreateMessageFacadeFromTypeId(msgType);
            IDestination         to            = CreateDestinationFromTypeId(toType);
            IDestination         replyTo       = CreateDestinationFromTypeId(replyToType);

            messageFacade.NMSDestination = to;
            messageFacade.NMSReplyTo     = replyTo;

            AmqpCodec.EncodeMessage(messageFacade);
            Assert.AreEqual(messageFacade.MessageAnnotations[SymbolUtil.JMSX_OPT_MSG_TYPE], msgType);

            if (toType != null)
            {
                Assert.True(messageFacade.MessageAnnotationExists(SymbolUtil.JMSX_OPT_DEST));
                Assert.AreEqual(messageFacade.GetMessageAnnotation(SymbolUtil.JMSX_OPT_DEST), toType.Value);
            }

            if (replyToType != null)
            {
                Assert.True(messageFacade.MessageAnnotationExists(SymbolUtil.JMSX_OPT_REPLY_TO));
                Assert.AreEqual(messageFacade.GetMessageAnnotation(SymbolUtil.JMSX_OPT_REPLY_TO), replyToType.Value);
            }
        }