public void ReverseAllTest() { InMemoryKeyValueStore store1 = new InMemoryKeyValueStore("store"); InMemoryKeyValueStore store2 = new InMemoryKeyValueStore("store"); var dt = DateTime.Now.GetMilliseconds(); var valueSerdes = new ValueAndTimestampSerDes <string>(new StringSerDes()); var bytes = new Bytes(Encoding.UTF8.GetBytes("test")); var bytes2 = new Bytes(Encoding.UTF8.GetBytes("test2")); var provider = new MockStateProvider <string, string>(1000 * 10, new StringSerDes(), new StringSerDes(), store1, store2); var composite = new CompositeReadOnlyKeyValueStore <string, string>(provider, storeType, "store"); store1.Put(bytes, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou1", dt), new SerializationContext())); store1.Put(bytes2, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou1bis", dt), new SerializationContext())); store2.Put(bytes, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou2", dt), new SerializationContext())); store2.Put(bytes2, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou2bis", dt), new SerializationContext())); var result = composite.ReverseAll().ToList(); Assert.IsNotNull(result); Assert.AreEqual(4, result.Count); Assert.AreEqual("test2", result[0].Key); Assert.AreEqual("coucou1bis", result[0].Value); Assert.AreEqual("test", result[1].Key); Assert.AreEqual("coucou1", result[1].Value); Assert.AreEqual("test2", result[2].Key); Assert.AreEqual("coucou2bis", result[2].Value); Assert.AreEqual("test", result[3].Key); Assert.AreEqual("coucou2", result[3].Value); }
public void EnumeratorReverseRangeAll() { var store = new InMemoryKeyValueStore("store"); var serdes = new StringSerDes(); string deserialize(byte[] bytes) { return(serdes.Deserialize(bytes, new SerializationContext())); } byte[] key = serdes.Serialize("key", new SerializationContext()), value = serdes.Serialize("value", new SerializationContext()); byte[] key2 = serdes.Serialize("key2", new SerializationContext()), value2 = serdes.Serialize("value2", new SerializationContext()); byte[] key3 = serdes.Serialize("key3", new SerializationContext()), value3 = serdes.Serialize("value3", new SerializationContext()); store.Put(new Bytes(key), value); store.Put(new Bytes(key2), value2); store.Put(new Bytes(key3), value3); var enumerator = store.ReverseRange(new Bytes(key), new Bytes(key2)); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual("key2", deserialize(enumerator.Current.Value.Key.Get)); Assert.AreEqual("value2", deserialize(enumerator.Current.Value.Value)); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual("key", deserialize(enumerator.Current.Value.Key.Get)); Assert.AreEqual("value", deserialize(enumerator.Current.Value.Value)); Assert.IsFalse(enumerator.MoveNext()); enumerator.Dispose(); }
public void ResetTest() { InMemoryKeyValueStore store1 = new InMemoryKeyValueStore("store"); InMemoryKeyValueStore store2 = new InMemoryKeyValueStore("store"); var dt = DateTime.Now.GetMilliseconds(); var valueSerdes = new ValueAndTimestampSerDes <string>(new StringSerDes()); var bytes = new Bytes(Encoding.UTF8.GetBytes("test")); var bytes2 = new Bytes(Encoding.UTF8.GetBytes("test2")); var provider = new MockStateProvider <string, string>(1000 * 10, new StringSerDes(), new StringSerDes(), store1, store2); var composite = new CompositeReadOnlyKeyValueStore <string, string>(provider, storeType, "store"); store1.Put(bytes, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou1", dt), new SerializationContext())); store2.Put(bytes2, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou2", dt), new SerializationContext())); var enumerator = composite.Range("test", "test2"); Assert.IsNotNull(enumerator); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual("test", enumerator.PeekNextKey()); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual("test2", enumerator.PeekNextKey()); Assert.IsFalse(enumerator.MoveNext()); enumerator.Reset(); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual("test", enumerator.PeekNextKey()); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual("test2", enumerator.PeekNextKey()); Assert.IsFalse(enumerator.MoveNext()); }
public void PutKeyExist() { var serdes = new StringSerDes(); byte[] key = serdes.Serialize("key", new SerializationContext()), value = serdes.Serialize("value", new SerializationContext()), value2 = serdes.Serialize("value2", new SerializationContext()); var store = new InMemoryKeyValueStore("store"); store.Put(new Bytes(key), value); store.Put(new Bytes(key), value2); Assert.AreEqual(1, store.ApproximateNumEntries()); var v = store.Get(new Bytes(key)); Assert.AreEqual("value2", serdes.Deserialize(v, new SerializationContext())); }
public void PutKeyNotExist() { var serdes = new StringSerDes(); byte[] key = serdes.Serialize("key"), value = serdes.Serialize("value"); var store = new InMemoryKeyValueStore("store"); store.Put(new Bytes(key), value); Assert.AreEqual(1, store.ApproximateNumEntries()); }
public void CountTest() { InMemoryKeyValueStore store1 = new InMemoryKeyValueStore("store"); InMemoryKeyValueStore store2 = new InMemoryKeyValueStore("store"); var dt = DateTime.Now.GetMilliseconds(); var valueSerdes = new ValueAndTimestampSerDes <string>(new StringSerDes()); var bytes = new Bytes(Encoding.UTF8.GetBytes("test")); var bytes2 = new Bytes(Encoding.UTF8.GetBytes("test2")); var provider = new MockStateProvider <string, string>(1000 * 10, new StringSerDes(), new StringSerDes(), store1, store2); var composite = new CompositeReadOnlyKeyValueStore <string, string>(provider, storeType, "store"); store1.Put(bytes, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou1", dt), new SerializationContext())); store2.Put(bytes2, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou2", dt), new SerializationContext())); Assert.AreEqual(2, composite.ApproximateNumEntries()); }
public void EnumeratorReset() { var store = new InMemoryKeyValueStore("store"); var serdes = new StringSerDes(); byte[] key = serdes.Serialize("key", new SerializationContext()), value = serdes.Serialize("value", new SerializationContext()); store.Put(new Bytes(key), value); var enumerator = store.All().GetEnumerator(); Assert.IsTrue(enumerator.MoveNext()); Assert.IsFalse(enumerator.MoveNext()); Assert.Throws <NotSupportedException>(() => enumerator.Reset()); }
public void GetTest() { InMemoryKeyValueStore store1 = new InMemoryKeyValueStore("store"); InMemoryKeyValueStore store2 = new InMemoryKeyValueStore("store"); var dt = DateTime.Now.GetMilliseconds(); var valueSerdes = new ValueAndTimestampSerDes <string>(new StringSerDes()); var bytes = new Bytes(Encoding.UTF8.GetBytes("test")); var provider = new MockStateProvider <string, string>(1000 * 10, new StringSerDes(), new StringSerDes(), store1, store2); var composite = new CompositeReadOnlyKeyValueStore <string, string>(provider, storeType, "store"); store1.Put(bytes, valueSerdes.Serialize(ValueAndTimestamp <string> .Make("coucou1", dt))); var result = composite.Get("test"); Assert.IsNotNull(result); Assert.AreEqual("coucou1", result); }