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"); }
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)); }