public void Flushing() { var child = new MapDatastore <string>(); var d = new AutoBatchDatastore <string>(child, 16); var keys = Enumerable.Range(0, 16).Select(i => new DatastoreKey($"test{i}")).ToArray(); var value = "hello world"; foreach (var key in keys) { d.Put(key, value); } Assert.Throws <KeyNotFoundException>(() => child.Get(keys[0])); d.Put(new DatastoreKey("test16"), value); foreach (var key in keys) { var v = child.Get(key); Assert.That(v, Is.EqualTo(value)); } }
public void TestBasic(string prefix) { var mpds = new MapDatastore <byte[]>(); var nsds = new NamespaceDatastore <byte[]>(mpds, new DatastoreKey(prefix)); var keys = new[] { "foo", "foo/bar", "foo/bar/baz", "foo/barb", "foo/bar/bazb", "foo/bar/baz/barb", }.Select(s => new DatastoreKey(s)).ToArray(); foreach (var key in keys) { nsds.Put(key, Encoding.UTF8.GetBytes(key.ToString())); } foreach (var key in keys) { var v1 = nsds.Get(key); Assert.That(v1, Is.EqualTo(Encoding.UTF8.GetBytes(key.ToString()))); var v2 = mpds.Get(new DatastoreKey(prefix).Child(key)); Assert.That(v2, Is.EqualTo(Encoding.UTF8.GetBytes(key.ToString()))); } Func <IDatastore <byte[]>, DatastoreQuery <byte[]>, List <DatastoreKey> > run = (d, q) => { return(d.Query(q).Rest().Select(e => e.DatastoreKey).ToList()); }; var listA = run(mpds, new DatastoreQuery <byte[]>()); var listB = run(nsds, new DatastoreQuery <byte[]>()); Assert.That(listA.Count, Is.EqualTo(listB.Count)); listA.Sort(); listB.Sort(); for (var i = 0; i < listA.Count; i++) { var kA = listA[i]; var kB = listB[i]; Assert.That(nsds.InvertKey(kA), Is.EqualTo(kB)); Assert.That(kA, Is.EqualTo(nsds.ConvertKey(kB))); } }