Esempio n. 1
0
        public async Task ExtendLeaseAsync(IQueueItem <T> queueItem)
        {
            LargeMessageQueueItem <T> castItem = queueItem as LargeMessageQueueItem <T>;

            if (castItem == null)
            {
                throw new InvalidOperationException("Unsupported queue item type.");
            }

            await _referenceQueue.ExtendLeaseAsync(castItem.ActualQueueItem);

            _logger?.LogTrace("LargeMessageQueue<T>: ExtendLeaseAsync - extended by default time");
        }
Esempio n. 2
0
        public async Task ExtendLeaseAsync(IQueueItem <T> queueItem, TimeSpan visibilityTimeout)
        {
            LargeMessageQueueItem <T> castItem = queueItem as LargeMessageQueueItem <T>;

            if (castItem == null)
            {
                throw new InvalidOperationException("Unsupported queue item type.");
            }

            await _referenceQueue.ExtendLeaseAsync(castItem.ActualQueueItem, visibilityTimeout);

            _logger?.LogTrace("LargeMessageQueue<T>: ExtendLeaseAsync - extending by {EXTENSIONMS}ms", visibilityTimeout.TotalMilliseconds);
        }
        public async Task ExtendLeaseWithDelayCallsReferenceQueue()
        {
            // Arrange
            var queue = new LargeMessageQueue<TestQueueItem>(_queueSerializerMock.Object, _referenceQueueMock.Object, _blobRepository.Object, _loggerMock.Object, null);
            var item = new TestQueueItem { Name = "Zaphod" };
            var timespan = TimeSpan.FromSeconds(30);
            var underlyingQueueItem = new Mock<IQueueItem<LargeMessageReference>>();
            var queueItem = new LargeMessageQueueItem<TestQueueItem>(item, 1, underlyingQueueItem.Object);
            
            // Act
            await queue.ExtendLeaseAsync(queueItem, timespan);

            // Assert
            _referenceQueueMock.Verify(x => x.ExtendLeaseAsync(underlyingQueueItem.Object, timespan));
        }