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"); }
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"); }
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)); }