public void CreateMessage_GetSystemProperties_Succeeds() { // Arrange Order order = OrderGenerator.Generate(); ServiceBusReceivedMessage message = order.AsServiceBusReceivedMessage(); // Act AzureServiceBusSystemProperties systemProperties = message.GetSystemProperties(); // Assert Assert.NotNull(systemProperties); }
public void CreateProperties_FromMessage_AssignsIsReceivedCorrectly() { // Arrange long expected = BogusGenerator.Random.Long(min: 0); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); amqpMessage.MessageAnnotations["x-opt-enqueue-sequence-number"] = expected; ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.True(systemProperties.IsReceived); }
public void CreateProperties_FromMessage_AssignsContentTypeCorrectly() { // Arrange string expected = BogusGenerator.Random.String(); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); amqpMessage.Properties.ContentType = expected; ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.Equal(expected, systemProperties.ContentType); }
public void CreateProperties_FromMessage_AssignsDeadLetterSourceCorrectly() { // Arrange string expected = BogusGenerator.Random.String(); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); amqpMessage.MessageAnnotations["x-opt-deadletter-source"] = expected; ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.Equal(expected, systemProperties.DeadLetterSource); }
public void CreateProperties_FromMessage_AssignsDeliveryCountCorrectly() { // Arrange uint expected = BogusGenerator.Random.UInt(); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); amqpMessage.Header.DeliveryCount = expected; ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.Equal((int)expected, systemProperties.DeliveryCount); }
public void CreateProperties_FromMessage_AssignsLockedUntilCorrectly() { // Arrange DateTime expected = BogusGenerator.Date.Past(); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); amqpMessage.MessageAnnotations["x-opt-locked-until"] = expected; ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.Equal(expected, systemProperties.LockedUntil); }
public void CreateProperties_FromMessage_AssignsLockTokenCorrectly(string lockToken) { // Arrange Guid.TryParse(lockToken, out Guid expected); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); SetLockToken(message, expected); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.Equal(expected, Guid.Parse(systemProperties.LockToken)); Assert.Equal(expected != null, systemProperties.IsLockTokenSet); }
public void CreateProperties_FromMessage_AssignsEnqueuedTimeCorrectly() { // Arrange DateTime expected = BogusGenerator.Date.Recent(); AmqpAnnotatedMessage amqpMessage = CreateAmqpMessage(); amqpMessage.MessageAnnotations["x-opt-enqueued-time"] = expected; ServiceBusReceivedMessage message = CreateServiceBusReceivedMessage(amqpMessage); // Act var systemProperties = AzureServiceBusSystemProperties.CreateFrom(message); // Assert Assert.Equal(expected, systemProperties.EnqueuedTime); }
/// <summary> /// Generates a valid <see cref="AzureServiceBusMessageContext"/> instance. /// </summary> public static AzureServiceBusMessageContext Generate() { var amqp = new AmqpAnnotatedMessage(new AmqpMessageBody(new ReadOnlyMemory <byte> [0])); amqp.Header.DeliveryCount = BogusGenerator.Random.UInt(); var message = (ServiceBusReceivedMessage)Activator.CreateInstance(typeof(ServiceBusReceivedMessage), BindingFlags.NonPublic | BindingFlags.Instance, args: new object[] { amqp }, binder: null, culture: null, activationAttributes: null); AzureServiceBusSystemProperties systemProperties = message.GetSystemProperties(); var context = new AzureServiceBusMessageContext( $"message-id-{Guid.NewGuid()}", $"job-id-{Guid.NewGuid()}", systemProperties, new Dictionary <string, object>()); return(context); }
/// <summary> /// Gets the <see cref="AzureServiceBusSystemProperties"/>, which is used to store properties that are set by the system. /// </summary> /// <param name="message">The received Azure Service Bus message to extract the system properties from.</param> /// <exception cref="ArgumentNullException">Thrown when the <paramref name="message"/> is <c>null</c>.</exception> public static AzureServiceBusSystemProperties GetSystemProperties(this ServiceBusReceivedMessage message) { Guard.NotNull(message, nameof(message), "Requires an Azure Service Bus received message to construct a set of Azure Service Bus system properties"); return(AzureServiceBusSystemProperties.CreateFrom(message)); }
public void CreateProperties_WithoutServiceBusMessage_Fails() { Assert.ThrowsAny <ArgumentException>( () => AzureServiceBusSystemProperties.CreateFrom(message: null)); }