public async Task DeleteWillRemoveFile() { await _queue.AddMessageAsync(new CloudQueueMessage("First test message")); var message = await _queue.GetMessageAsync(); await _queue.DeleteMessageAsync(message); var files = Directory.GetFiles(BasePath); Assert.Empty(files); }
protected static async Task ProcessMessagesAsync(IAzureQueue <T> queue, IEnumerable <T> messages, Func <T, bool> action) { if (queue == null) { throw new ArgumentNullException(nameof(queue)); } if (action == null) { throw new ArgumentNullException(nameof(action)); } if (messages == null) { throw new ArgumentNullException(nameof(messages)); } foreach (var message in messages) { var allowDelete = false; var corruptMessage = false; try { allowDelete = action(message); } catch (Exception ex) { TraceHelper.TraceWarning(ex.TraceInformation()); allowDelete = false; corruptMessage = true; } finally { if (allowDelete || (corruptMessage && message.GetMessageReference().DequeueCount > 5)) { await queue.DeleteMessageAsync(message).ConfigureAwait(false); } } } }