public async Task SendAsync_NoException()
        {
            // assert
            Mock <IBlobContainer> container = new Mock <IBlobContainer>();

            container
            .Setup(t => t.UploadAsync(It.IsAny <AttachmentDescriptor>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(0));

            BlobStorageTransmissionSender sender = new BlobStorageTransmissionSender(container.Object);

            AttachmentDescriptor[] batch = new[] { new AttachmentDescriptor() };

            // act
            Func <Task> verify = () => sender.SendAsync(batch);

            // arrange
            Assert.Null(await Record.ExceptionAsync(verify).ConfigureAwait(false));
        }
        public async Task SendAsync_BatchOutOfRange()
        {
            // arrange
            Mock <IBlobContainer> container = new Mock <IBlobContainer>();

            container
            .Setup(t => t.UploadAsync(It.IsAny <AttachmentDescriptor>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(0));

            BlobStorageTransmissionSender sender = new BlobStorageTransmissionSender(container.Object);

            AttachmentDescriptor[] batch = new AttachmentDescriptor[0];

            // act
            Func <Task> verify = () => sender.SendAsync(batch);

            // assert
            await Assert.ThrowsAsync <ArgumentOutOfRangeException>("batch", verify).ConfigureAwait(false);
        }