public async Task WriteMessageCreatesQueueMessageTest()
        {
            const string queueName = "newcategories";
            var          category  = Model.Create <Category>();
            var          expected  = category.Group + Environment.NewLine + category.Name;

            var target = new NewCategoryQueue(Config.Storage);

            var storageAccount = CloudStorageAccount.Parse(Config.Storage.ConnectionString);
            var client         = storageAccount.CreateCloudQueueClient();
            var queue          = client.GetQueueReference(queueName);

            await target.WriteMessage(category, CancellationToken.None).ConfigureAwait(false);

            var queueItem = await queue.GetMessageAsync().ConfigureAwait(false);

            while (queueItem != null)
            {
                var actual = queueItem.AsString;

                if (actual == expected)
                {
                    // We found the item
                    return;
                }

                // Check the next queue item
                queueItem = await queue.GetMessageAsync().ConfigureAwait(false);
            }

            throw new InvalidOperationException("Expected queue item was not found.");
        }
        public void WriteMessageThrowsExceptionWithNullCategoryTest()
        {
            var target = new NewCategoryQueue(Config.Storage);

            Func <Task> action = async() =>
                                 await target.WriteMessage(null, CancellationToken.None).ConfigureAwait(false);

            action.Should().Throw <ArgumentNullException>();
        }