Exemplo n.º 1
0
        public void writing_many_pages_to_the_index()
        {
            var storage = new MemoryStream();
            var subject = new PageStorage(storage);


            var firstPageId = 123;
            var firstDocId  = Guid.NewGuid();

            subject.BindIndex(firstDocId, firstPageId, out _);

            for (int i = 0; i < 1000; i++)
            {
                subject.BindIndex(Guid.NewGuid(), i, out _);
            }

            var lastPageId = 123;
            var lastDocId  = Guid.NewGuid();

            subject.BindIndex(lastDocId, lastPageId, out _);


            Assert.That(subject.GetDocumentHead(firstDocId), Is.EqualTo(firstPageId));
            Assert.That(subject.GetDocumentHead(lastDocId), Is.EqualTo(lastPageId));

            Console.WriteLine($"Storage after writing data is {storage.Length} bytes");
        }
Exemplo n.º 2
0
        public void removing_from_index()
        {
            var storage = new MemoryStream();
            var subject = new PageStorage(storage);

            var newPageId   = 123;
            var otherPageId = 321;
            var docId       = Guid.NewGuid();
            var otherId     = Guid.NewGuid();

            subject.BindIndex(docId, newPageId, out var oldPageId);
            subject.BindIndex(otherId, otherPageId, out _);

            var result = subject.GetDocumentHead(docId);

            Assert.That(result, Is.EqualTo(newPageId));
            Assert.That(oldPageId, Is.EqualTo(-1));


            subject.UnbindIndex(docId);

            Assert.That(subject.GetDocumentHead(docId), Is.EqualTo(-1), "Document is still in the index");
            Assert.That(subject.GetDocumentHead(otherId), Is.EqualTo(otherPageId), "Lost a document we didn't target");
        }
Exemplo n.º 3
0
        public void writing_to_index()
        {
            var storage = new MemoryStream();
            var subject = new PageStorage(storage);

            var newPageId = 123;
            var docId     = Guid.NewGuid();

            subject.BindIndex(docId, newPageId, out var oldPageId);

            var result = subject.GetDocumentHead(docId);

            Assert.That(result, Is.EqualTo(newPageId));
            Assert.That(oldPageId, Is.EqualTo(-1));
        }