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); }
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"]); } }
static void RunSerializationTest(AmqpMessage message) { AmqpMessage deserialized = AmqpMessage.CreateBufferMessage(message.GetPayload()); ValidateMessage(message, deserialized); }