Exemple #1
0
        public void TestQueue()
        {
            using (var dl = new DisposableList())
            {
                var docs     = TestHelpers.CreateStarDocuments(3);
                var original = DocdbGatewayMessage.Create("Star", docs);

                var queue = new QueueWrapper(TestHelpers.GenUnique("gateq"), TestConfig.GatewayStorageAccount);
                dl.Add(queue.Delete);

                var blobStorage           = new InMemoryGatewayBlobStore();
                GatewayQueueWriter writer = new GatewayQueueWriter(queue, blobStorage);
                writer.Write(original);

                GatewayQueueReader reader = new GatewayQueueReader(queue, blobStorage);
                reader.ReadNextMessage <DocdbGatewayMessage>(
                    gm =>
                {
                    var rdocs = gm.DocumentsAs <StarDocument>().ToList();
                    Assert.AreEqual(docs.Count, rdocs.Count);

                    for (int i = 0; i < rdocs.Count; ++i)
                    {
                        TestHelpers.AssertEqualStars(docs[i], rdocs[i]);
                    }
                },
                    (e, gm, cqm) => Assert.Fail());
            }
        }
Exemple #2
0
        public void TestQueueBig()
        {
            using (var dl = new DisposableList())
            {
                var entities = TestHelpers.CreateStarEntities(10000);
                var original = TableGatewayMessage.Create("Star", entities);

                var queue = new QueueWrapper(TestHelpers.GenUnique("gateq"), TestConfig.GatewayStorageAccount);
                var bcont = new BlobContainerWrapper(TestHelpers.GenUnique("gatecont"), TestConfig.GatewayStorageAccount);
                dl.Add(queue.Delete);
                dl.Add(bcont.Delete);

                var blobStorage           = new GatewayBlobStore(bcont);
                GatewayQueueWriter writer = new GatewayQueueWriter(queue, blobStorage);
                writer.Write(original);

                GatewayQueueReader reader = new GatewayQueueReader(queue, blobStorage);
                reader.ReadNextMessage <TableGatewayMessage>(
                    gm =>
                {
                    var rentities = gm.EntitiesAs <StarEntity>().ToList();
                    Assert.AreEqual(entities.Count, rentities.Count);

                    for (int i = 0; i < rentities.Count; ++i)
                    {
                        TestHelpers.AssertEqualStars(entities[i], rentities[i]);
                    }
                },
                    (e, gm, cqm) => Assert.Fail());
            }
        }
        public DocdbGatewayQueueProcessor(
            GatewayQueueReader queueReader,
            ITargetCollectionResolver targetCollectionResolver
            )
        {
            Guard.NotNull(queueReader, "queueReader");
            Guard.NotNull(targetCollectionResolver, "targetCollectionResolver");

            _cachedTargetCollections  = new Dictionary <string, TargetCollection>();
            _targetCollectionResolver = targetCollectionResolver;
            _queueReader = queueReader;
        }
Exemple #4
0
        public TableGatewayQueueProcessor(
            GatewayQueueReader queueReader,
            ITargetTableResolver targetTableResolver
            )
        {
            Guard.NotNull(queueReader, "queueReader");
            Guard.NotNull(targetTableResolver, "targetTableResolver");

            _cachedTables        = new Dictionary <string, TargetTable>();
            _targetTableResolver = targetTableResolver;
            _queueReader         = queueReader;
        }
Exemple #5
0
        public void TestMultiQueueBig()
        {
            using (var dl = new DisposableList())
            {
                var entities = TestHelpers.CreateStarEntities(10000);
                var original = TableGatewayMessage.Create("Star", entities);

                List <QueueWrapper> queues = new List <QueueWrapper>();
                for (int i = 0; i < 3; ++i)
                {
                    var queue = new QueueWrapper(TestHelpers.GenUnique("gateq" + i), TestConfig.GatewayStorageAccount);
                    dl.Add(queue.Delete);
                    queues.Add(queue);
                }

                var blobStorage = new InMemoryGatewayBlobStore();
                GatewayMultiQueueWriter writer = new GatewayMultiQueueWriter(queues, blobStorage);
                writer.Write(original);
                Assert.AreEqual(1, blobStorage.Count);

                foreach (var queue in queues)
                {
                    GatewayQueueReader reader = new GatewayQueueReader(queue, blobStorage);
                    bool processed            = false;
                    reader.ReadNextMessage <TableGatewayMessage>(
                        gm =>
                    {
                        var rentities = gm.EntitiesAs <StarEntity>().ToList();
                        Assert.AreEqual(entities.Count, rentities.Count);

                        for (int i = 0; i < rentities.Count; ++i)
                        {
                            TestHelpers.AssertEqualStars(entities[i], rentities[i]);
                        }

                        processed = true;
                    },
                        (e, gm, cqm) => Assert.Fail());

                    Assert.IsTrue(processed);
                }
            }
        }