async Task DeferReceiveDeferredFireEvents() { this.queueClient = new QueueClient(TestUtility.NamespaceConnectionString, TestConstants.NonPartitionedQueueName, ReceiveMode.PeekLock); this.listener.Enable((name, queuName, arg) => name.Contains("Send") || name.Contains("Defer") || name.Contains("Receive")); await TestUtility.SendMessagesAsync(this.queueClient.InnerSender, 1); var messages = await TestUtility.ReceiveMessagesAsync(this.queueClient.InnerReceiver, 1); await TestUtility.DeferMessagesAsync(this.queueClient.InnerReceiver, messages); var message = await this.queueClient.InnerReceiver.ReceiveDeferredMessageAsync(messages[0] .SystemProperties .SequenceNumber); this.listener.Disable(); await TestUtility.CompleteMessagesAsync(this.queueClient.InnerReceiver, new[] { message }); Assert.True(this.events.TryDequeue(out var sendStart)); Assert.True(this.events.TryDequeue(out var sendStop)); Assert.True(this.events.TryDequeue(out var receiveStart)); Assert.True(this.events.TryDequeue(out var receiveStop)); Assert.True(this.events.TryDequeue(out var deferStart)); AssertDeferStart(deferStart.eventName, deferStart.payload, deferStart.activity, null); Assert.True(this.events.TryDequeue(out var deferStop)); AssertDeferStop(deferStop.eventName, deferStop.payload, deferStop.activity, deferStart.activity); Assert.True(this.events.TryDequeue(out var receiveDeferredStart)); AssertReceiveDeferredStart(receiveDeferredStart.eventName, receiveDeferredStart.payload, receiveDeferredStart.activity); Assert.True(this.events.TryDequeue(out var receiveDeferredStop)); AssertReceiveDeferredStop(receiveDeferredStop.eventName, receiveDeferredStop.payload, receiveDeferredStop.activity, receiveDeferredStart.activity, sendStart.activity); Assert.True(this.events.IsEmpty); }
async Task RenewLockFireEvents() { await ServiceBusScope.UsingQueueAsync(partitioned : false, sessionEnabled : false, async queueName => { this.queueClient = new QueueClient(TestUtility.NamespaceConnectionString, queueName, ReceiveMode.PeekLock); await TestUtility.SendMessagesAsync(this.queueClient.InnerSender, 1); var messages = await TestUtility.ReceiveMessagesAsync(this.queueClient.InnerReceiver, 1); this.listener.Enable((name, queue, arg) => name.Contains("RenewLock")); await this.queueClient.InnerReceiver.RenewLockAsync(messages[0]); this.listener.Disable(); await TestUtility.CompleteMessagesAsync(this.queueClient.InnerReceiver, messages); Assert.True(this.events.TryDequeue(out var renewStart)); AssertRenewLockStart(queueName, renewStart.eventName, renewStart.payload, renewStart.activity, null); Assert.True(this.events.TryDequeue(out var renewStop)); AssertRenewLockStop(queueName, renewStop.eventName, renewStop.payload, renewStop.activity, renewStart.activity); Assert.True(this.events.IsEmpty); }); }
public async Task RenewLockFireEvents() { await ServiceBusScope.UsingQueueAsync(partitioned : false, sessionEnabled : false, async queueName => { var queueClient = new QueueClient(TestUtility.NamespaceConnectionString, queueName, ReceiveMode.PeekLock); var eventQueue = this.CreateEventQueue(); try { using (var listener = this.CreateEventListener(queueName, eventQueue)) using (var subscription = this.SubscribeToEvents(listener)) { await TestUtility.SendMessagesAsync(queueClient.InnerSender, 1); var messages = await TestUtility.ReceiveMessagesAsync(queueClient.InnerReceiver, 1); listener.Enable((name, queue, arg) => name.Contains("RenewLock")); await queueClient.InnerReceiver.RenewLockAsync(messages[0]); listener.Disable(); await TestUtility.CompleteMessagesAsync(queueClient.InnerReceiver, messages); Assert.True(eventQueue.TryDequeue(out var renewStart)); AssertRenewLockStart(queueName, renewStart.eventName, renewStart.payload, renewStart.activity, null); Assert.True(eventQueue.TryDequeue(out var renewStop)); AssertRenewLockStop(queueName, renewStop.eventName, renewStop.payload, renewStop.activity, renewStart.activity); Assert.True(eventQueue.IsEmpty, "There were events present when none were expected"); } } finally { await queueClient.CloseAsync(); } }); }