public void PriorityMustBeInteger() { var accessor = new RabbitHeaderAccessor(RabbitMessageBuilder.WithPayload("foo").Build()); Assert.Throws <ArgumentException>(() => accessor.SetHeader(RabbitMessageHeaders.PRIORITY, "foo")); }
public IMessageHeaders ToMessageHeaders(IBasicProperties source, Envelope envelope, Encoding charset) { var target = new RabbitHeaderAccessor(); var headers = source.Headers; if (headers?.Count > 0) { foreach (var entry in headers) { var key = entry.Key; if (RabbitMessageHeaders.X_DELAY.Equals(key)) { var value = entry.Value; if (value is int) { target.ReceivedDelay = (int)value; } } else { target.SetHeader(key, ConvertLongStringIfNecessary(entry.Value, charset)); } } } target.Timestamp = source.Timestamp.UnixTime; target.MessageId = source.MessageId; target.ReceivedUserId = source.UserId; target.AppId = source.AppId; target.ClusterId = source.ClusterId; target.Type = source.Type; var deliveryMode = (int)source.DeliveryMode; target.ReceivedDeliveryMode = (MessageDeliveryMode)Enum.ToObject(typeof(MessageDeliveryMode), deliveryMode); target.DeliveryMode = null; target.Expiration = source.Expiration; target.Priority = source.Priority; target.ContentType = source.ContentType; if (string.IsNullOrEmpty(target.ContentType)) { target.ContentType = RabbitHeaderAccessor.DEFAULT_CONTENT_TYPE; } target.ContentEncoding = source.ContentEncoding; var correlationId = source.CorrelationId; if (!string.IsNullOrEmpty(correlationId)) { target.CorrelationId = correlationId; } var replyTo = source.ReplyTo; if (replyTo != null) { target.ReplyTo = replyTo; } if (envelope != null) { target.ReceivedExchange = envelope.Exchange; target.ReceivedRoutingKey = envelope.RoutingKey; target.Redelivered = envelope.Redeliver; target.DeliveryTag = envelope.DeliveryTag; } target.LeaveMutable = true; return(target.MessageHeaders); }