public void path_lookup_data() { var storage = new MemoryStream(); var subject = new PageStorage(storage); var val1 = Guid.NewGuid(); var val2 = Guid.NewGuid(); subject.BindPath("this is my path", val1, out _); subject.BindPath("this is another path", val2, out _); var result1 = subject.GetDocumentIdByPath("this is my path"); var result2 = subject.GetDocumentIdByPath("this path is not presend"); Assert.That(result1, Is.EqualTo(val1)); Assert.That(result2, Is.Null); }
public void path_replacement_cycling() { var storage = new MemoryStream(); var subject = new PageStorage(storage); var valIn = Guid.NewGuid(); Guid?prev = null; for (int i = 0; i < 10; i++) { subject.BindPath("this path will get replaced a lot", valIn, out var valOut); Assert.That(valOut, Is.EqualTo(prev), $"Failed on cycle {i}"); prev = valIn; valIn = Guid.NewGuid(); } Console.WriteLine($"Storage after writing data is {storage.Length} bytes"); }
public void search_paths_by_prefix() { var storage = new MemoryStream(); var subject = new PageStorage(storage); subject.BindPath("find me/one", Guid.NewGuid(), out _); subject.BindPath("find me/two", Guid.NewGuid(), out _); subject.BindPath("miss me/three", Guid.NewGuid(), out _); subject.BindPath("find me/four", Guid.NewGuid(), out _); subject.BindPath("miss me/five", Guid.NewGuid(), out _); subject.BindPath("miss me/six", Guid.NewGuid(), out _); var list = string.Join(",", subject.SearchPaths("find me/")); Assert.That(list, Is.EqualTo("find me/one,find me/two,find me/four")); }
public void lookup_paths_for_a_document_id() { var storage = new MemoryStream(); var subject = new PageStorage(storage); var target = Guid.NewGuid(); subject.BindPath("one", target, out _); subject.BindPath("two", Guid.NewGuid(), out _); subject.BindPath("three", target, out _); subject.BindPath("four", target, out _); subject.BindPath("five", Guid.NewGuid(), out _); subject.BindPath("six", Guid.NewGuid(), out _); var list = string.Join(",", subject.GetPathsForDocument(target)); Assert.That(list, Is.EqualTo("one,three,four")); }