Esempio n. 1
0
        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);
            });
        }
Esempio n. 3
0
        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();
                }
            });
        }