Ejemplo n.º 1
0
        private async Task TestPageWriteAndRead(PagesCluster clusterPage, long pageId, Dictionary <long, byte[]> cache)
        {
            var messagePageId = new MessagePageId(pageId);
            var hasPage       = await clusterPage.HasPageAsync(messagePageId);

            Assert.IsFalse(hasPage);


            var msg = new MessageContentGrpcModel
            {
                Created   = DateTime.UtcNow,
                Data      = new [] { (byte)pageId, (byte)pageId, (byte)pageId },
                MessageId = pageId,
            };

            var content = new CompressedPage(new MessagePageId(pageId), new [] { msg });

            cache.Add(pageId, content.ZippedContent.ToArray());

            await clusterPage.WriteAsync(messagePageId, content);

            hasPage = await clusterPage.HasPageAsync(messagePageId);

            Assert.IsTrue(hasPage);

            var resultContent = await clusterPage.ReadAsync(messagePageId);

            resultContent.ZippedContent.AssertAllBytesAreEqualWith(content.ZippedContent);
        }
Ejemplo n.º 2
0
        private async Task DoubleCheck(PagesCluster clusterPage, long pageId, byte[] srcContent)
        {
            var messagePageId = new MessagePageId(pageId);
            var resultContent = await clusterPage.ReadAsync(messagePageId);

            Assert.AreEqual(resultContent.Messages[0].MessageId, pageId);
            resultContent.ZippedContent.AssertAllBytesAreEqualWith(srcContent);
        }
Ejemplo n.º 3
0
        public async Task TestThatWeDetectThatPageIsEmpty()
        {
            var azurePageBlob = new MyAzurePageBlobInMem();

            var clusterPage = new PagesCluster(azurePageBlob, new ClusterPageId(0), "test");


            var dict = new Dictionary <long, byte[]>();


            for (var i = 0; i < 99; i++)
            {
                await TestPageWriteAndRead(clusterPage, i, dict);
            }


            for (var i = 0; i < 99; i++)
            {
                await DoubleCheck(clusterPage, i, dict[i]);
            }
        }