Ejemplo n.º 1
0
        public void PutGetDeleteOverflowing()
        {
            // 20k chosen so that it doesn't fit into the queue.
            var message = new MyMessage {
                MyBuffer = new byte[80000]
            };

            // fill buffer with random content
            _rand.NextBytes(message.MyBuffer);

            QueueStorage.Clear(QueueName);

            QueueStorage.Put(QueueName, message);
            var retrieved = QueueStorage.Get <MyMessage>(QueueName, 1).First();

            Assert.AreEqual(message.MyGuid, retrieved.MyGuid, "#A01");
            CollectionAssert.AreEquivalent(message.MyBuffer, retrieved.MyBuffer, "#A02");

            for (int i = 0; i < message.MyBuffer.Length; i++)
            {
                Assert.AreEqual(message.MyBuffer[i], retrieved.MyBuffer[i], "#A02-" + i);
            }

            QueueStorage.Delete(retrieved);
        }
Ejemplo n.º 2
0
        public void ClearRemovesOverflowingBlobs()
        {
            var queueName = "test1-" + Guid.NewGuid().ToString("N");

            // CAUTION: we are now compressing serialization output.
            // hence, we can't just pass an empty array, as it would be compressed at near 100%.

            var data = new byte[80000];

            _rand.NextBytes(data);

            QueueStorage.Put(queueName, data);

            // HACK: implicit pattern for listing overflowing messages
            var overflowingCount =
                BlobStorage.ListBlobNames(QueueStorageProvider.OverflowingMessagesContainerName, queueName).Count();

            Assert.AreEqual(1, overflowingCount, "#A00");

            QueueStorage.Clear(queueName);

            overflowingCount =
                BlobStorage.ListBlobNames(QueueStorageProvider.OverflowingMessagesContainerName, queueName).Count();

            Assert.AreEqual(0, overflowingCount, "#A01");

            QueueStorage.DeleteQueue(queueName);
        }
        public void ItemsReturnedInMonoThread()
        {
            var fakeMessages = Enumerable.Range(0, 10).Select(i => new FakeMessage(i)).ToArray();

            QueueStorage.PutRange(FirstQueueName, fakeMessages.Take(6));
            var allFirstItems = QueueStorage.Get <FakeMessage>(FirstQueueName, 6);

            QueueStorage.Clear(FirstQueueName);

            QueueStorage.PutRange(FirstQueueName, fakeMessages.Take(6));
            var partOfFirstItems = QueueStorage.Get <FakeMessage>(FirstQueueName, 2);

            Assert.AreEqual(4, QueueStorage.GetApproximateCount(FirstQueueName), "#A06");
            QueueStorage.Clear(FirstQueueName);

            QueueStorage.PutRange(FirstQueueName, fakeMessages.Take(6));
            var allFirstItemsAndMore = QueueStorage.Get <FakeMessage>(FirstQueueName, 8);

            QueueStorage.Clear(FirstQueueName);

            Assert.AreEqual(6, allFirstItems.Count(), "#A07");
            Assert.AreEqual(2, partOfFirstItems.Count(), "#A08");
            Assert.AreEqual(6, allFirstItemsAndMore.Count(), "#A09");
        }