Beispiel #1
0
        public void AmqpMessageReceiveResendTest()
        {
            var message = AmqpMessage.Create(new AmqpValue {
                Value = "Hello, AMQP!"
            });

            message.MessageAnnotations.Map["key"] = "old";

            // send the message and receive it on remote side
            ByteBuffer payload    = message.GetPayload();
            var        outMessage = AmqpMessage.CreateBufferMessage(payload).Clone();

            //explicitly assign
            outMessage.Header.Priority = 99;
            outMessage.DeliveryAnnotations.Map["key"] = "da-update";
            outMessage.MessageAnnotations.Map["key"]  = "update";

            // send
            var payload2 = outMessage.GetPayload();
            var value    = (string)outMessage.MessageAnnotations.Map["key"];

            Assert.Equal("update", value);

            // receive
            var receivedMessage = AmqpMessage.CreateBufferMessage(payload2);

            Assert.Equal(99, receivedMessage.Header.Priority.Value);
            value = (string)outMessage.DeliveryAnnotations.Map["key"];
            Assert.Equal("da-update", value);
            value = (string)outMessage.MessageAnnotations.Map["key"];
            Assert.Equal("update", value);
        }
Beispiel #2
0
        public void AmqpMessageSerializedSizeTest()
        {
            var messages = new AmqpMessage[]
            {
                AmqpMessage.Create(new Data()
                {
                    Value = new ArraySegment <byte>(new byte[60])
                }),
                AmqpMessage.Create(new MemoryStream(new byte[1000]), true)
            };

            foreach (var message in messages)
            {
                long size = message.Serialize(true);
                Assert.True(size > 0);

                message.Properties.MessageId = Guid.NewGuid();
                long size2 = message.Serialize(true);
                Assert.True(size2 > size);

                message.MessageAnnotations.Map["property"] = "v1";
                long size3 = message.Serialize(true);
                Assert.True(size3 > size2);

                var message2 = AmqpMessage.CreateBufferMessage(message.GetPayload());
                Assert.Equal("v1", message2.MessageAnnotations.Map["property"]);

                message.Properties.MessageId = "12345";
                message.MessageAnnotations.Map["property"] = "v2";
                message.Serialize(true);
                var message3 = AmqpMessage.CreateBufferMessage(message.GetPayload());
                Assert.Equal((MessageId)"12345", message3.Properties.MessageId);
                Assert.Equal("v2", message3.MessageAnnotations.Map["property"]);
            }
        }
Beispiel #3
0
        static void RunSerializationTest(AmqpMessage message)
        {
            AmqpMessage deserialized = AmqpMessage.CreateBufferMessage(message.GetPayload());

            ValidateMessage(message, deserialized);
        }