public void deleting_a_value_from_a_path() { var subject = new ReverseTrie <SerialGuid>(); var val1 = SerialGuid.Wrap(Guid.NewGuid()); var val2 = SerialGuid.Wrap(Guid.NewGuid()); subject.Add("Deleted: no", val1); subject.Add("Deleted: yes", val2); subject.Delete("Deleted: yes"); subject.Delete("Not present"); // ok to try non-paths // Get Assert.That(subject.Get("Deleted: no"), Is.EqualTo(val1), "Failed to find data to a known path"); Assert.That(subject.Get("Deleted: yes"), Is.Null, "Should have been removed, but it's still there"); // Search var all = string.Join(",", subject.Search("Deleted")); Assert.That(all, Is.EqualTo("Deleted: no")); // Look-up Assert.That(subject.GetPathsForEntry(val2), Is.Empty, "Value cache was not updated"); Assert.That(subject.GetPathsForEntry(val1), Is.Not.Empty, "Value cache was destroyed?"); }
public void search_with_a_path_prefix() { var subject = new ReverseTrie <ByteString>(); subject.Add("my/path/1", "value1"); subject.Add("my/path/2", "value2"); subject.Add("my/other/path", "value3"); subject.Add("my/other/path/longer", "value4"); var result = subject.Search("my/pa"); Assert.That(string.Join(",", result), Is.EqualTo("my/path/1,my/path/2")); }