public async Task CanSendReceivedMessage() { await using (var scope = await ServiceBusScope.CreateWithQueue(enablePartitioning: false, enableSession: false)) { var client = new ServiceBusClient( TestEnvironment.FullyQualifiedNamespace, GetTokenCredential()); await using var sender = new ServiceBusClient(TestEnvironment.ServiceBusConnectionString).GetSender(scope.QueueName); using ServiceBusMessageBatch batch = await sender.CreateBatchAsync(); var messageCt = 10; IEnumerable <ServiceBusMessage> messages = AddMessages(batch, messageCt).AsEnumerable <ServiceBusMessage>(); await sender.SendBatchAsync(batch); var receiver = client.GetReceiver(scope.QueueName, new ServiceBusReceiverOptions() { ReceiveMode = ReceiveMode.ReceiveAndDelete }); var remainingMessages = messageCt; IList <ServiceBusReceivedMessage> receivedMessages = new List <ServiceBusReceivedMessage>(); while (remainingMessages > 0) { foreach (var msg in await receiver.ReceiveBatchAsync(messageCt)) { remainingMessages--; receivedMessages.Add(msg); } } foreach (ServiceBusReceivedMessage msg in receivedMessages) { await sender.SendAsync(ServiceBusMessage.CreateFrom(msg)); } var messageEnum = receivedMessages.GetEnumerator(); remainingMessages = messageCt; while (remainingMessages > 0) { foreach (var msg in await receiver.ReceiveBatchAsync(remainingMessages)) { remainingMessages--; messageEnum.MoveNext(); Assert.AreEqual(messageEnum.Current.MessageId, msg.MessageId); } } Assert.AreEqual(0, remainingMessages); } }
public async Task CanSendReceivedMessage() { await using (var scope = await ServiceBusScope.CreateWithQueue(enablePartitioning: false, enableSession: false)) { var client = new ServiceBusClient( TestEnvironment.FullyQualifiedNamespace, GetTokenCredential()); await using var sender = new ServiceBusClient(TestEnvironment.ServiceBusConnectionString).GetSender(scope.QueueName); using ServiceBusMessageBatch batch = await sender.CreateBatchAsync(); var messageCt = 10; IEnumerable <ServiceBusMessage> messages = AddMessages(batch, messageCt).AsEnumerable <ServiceBusMessage>(); await sender.SendBatchAsync(batch); var receiver = client.GetReceiver(scope.QueueName, new ServiceBusReceiverOptions() { ReceiveMode = ReceiveMode.PeekLock }); var receivedMessages = await receiver.ReceiveBatchAsync(messageCt); foreach (ServiceBusReceivedMessage msg in receivedMessages) { await sender.SendAsync(ServiceBusMessage.CreateFrom(msg)); } int receivedMessageCount = 0; var messageEnum = messages.GetEnumerator(); foreach (var item in await receiver.ReceiveBatchAsync(messageCt)) { receivedMessageCount++; messageEnum.MoveNext(); Assert.AreEqual(messageEnum.Current.MessageId, item.MessageId); } Assert.AreEqual(messageCt, receivedMessages.Count); } }