public async Task <IEnumerable <AzureEmailQueueMessage> > ReceiveAsync(int number, CancellationToken cancellationToken) { _logger.LogTrace("Receiving {0} message(s)", number); if (!_initialized) { await InitializeAsync(cancellationToken); } if (number > MaxMessagesToRetrieve) { throw new ArgumentOutOfRangeException(nameof(number), $"The {GetType().Name} implementation of `IEmailQueueReceiver<TMessage>` can only dequeue up to {MaxMessagesToRetrieve} message(s) at a time"); } if (number < 1) { throw new ArgumentOutOfRangeException(nameof(number), $"The parameter `number` of `IEmailQueueReceiver` must be a positive integer greater than or equal to one, as you can't retrieve zero messages or less"); } var tokens = new List <AzureEmailQueueMessage>(); foreach (var message in await _queue.Value.GetMessagesAsync(number, null, null, null, cancellationToken)) { tokens.Add(new AzureEmailQueueMessage { Token = EmailQueueToken.DecodeBytes(message.AsBytes), MessageId = message.Id, PopReceipt = message.PopReceipt, DequeueCount = message.DequeueCount }); } return(tokens); }
public void DecodeBytes_ShouldThrowArgumentException_IfByteArrayIsNotCorrectLength() { // arrange var bytes = new byte[8] { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 }; // act/assert Assert.Throws <ArgumentOutOfRangeException>(() => EmailQueueToken.DecodeBytes(bytes)); }
public void DecodeBytes_ShouldDeserializeValidByteArray() { // arrange var original = EmailQueueToken.Create(Application1); var bytes = original.EncodeBytes(); // act var decoded = EmailQueueToken.DecodeBytes(bytes); // assert Assert.Equal(original.TimeStamp, decoded.TimeStamp); Assert.Equal(original.RequestId, decoded.RequestId); }