public void TestIterator() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Set("New York", "blue"); var expected = new[] { "London", "New York", "Tampa" }; var actual = new List <string>(); using (var iterator = db.CreateIterator(new ReadOptions())) { iterator.SeekToFirst(); while (iterator.IsValid()) { var key = iterator.GetKey(); actual.Add(key); iterator.Next(); } } Assert.Equal(expected, actual); } }
public void TestSnapshot() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Remove("New York"); using (var snapShot = db.CreateSnapshot()) { var readOptions = new ReadOptions { Snapshot = snapShot }; db.Set("New York", "blue"); Assert.Equal((string)db.Get("Tampa", readOptions), "green"); Assert.Equal((string)db.Get("London", readOptions), "red"); // Snapshot taken before key was updates Assert.Null(db.Get("New York", readOptions)); } // can see the change now Assert.Equal((string)db.Get("New York"), "blue"); } }
public void TestWriteBatch() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("NA", "Na"); using (var batch = new WriteBatch()) { batch.Remove("NA") .Set("Tampa", "Green") .Set("London", "red") .Set("New York", "blue"); db.Write(batch); } var expected = new[] { "London", "New York", "Tampa" }; var actual = from kv in db select(string) kv.Key; Assert.Equal(expected, actual.ToArray()); } }
public void TestIterator() { var path = CleanTestDB(); using(var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Set("New York", "blue"); var expected = new[] { "London", "New York", "Tampa" }; var actual = new List<string>(); using(var iterator = db.CreateIterator(new ReadOptions())) { iterator.SeekToFirst(); while(iterator.IsValid()) { var key = iterator.GetKey(); actual.Add(key); iterator.Next(); } } Assert.Equal(expected, actual); } }
public void TestGetProperty() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { var r = new Random(0); var data = ""; for (var i = 0; i < 1024; i++) { data += 'a' + r.Next(26); } for (int i = 0; i < 5 * 1024; i++) { db.Set(string.Format("row{0}", i), data); } var stats = db.PropertyValue("leveldb.stats"); Assert.NotNull(stats); Assert.True(stats.Contains("Compactions")); } }
/// <summary> /// set value /// </summary> /// <param name="key"></param> /// <param name="value"></param> public static void Set(string key, string value) { CheckPath(); using (var db = new LDB(path)) { db.Set(key, value); } }
/// <summary> /// set value /// </summary> /// <param name="key"></param> /// <param name="value"></param> public static void Set <T>(string key, T value) { CheckPath(); using (var db = new LDB(path)) { db.Set(key, value.ToByte()); } }
public void TestEnumerable() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Set("New York", "blue"); var expected = new[] { "London", "New York", "Tampa" }; var actual = from kv in db select(string) kv.Key; Assert.Equal(expected, actual.ToArray()); } }
public void ComparatorTest() { using (var database = new LDB(DatabasePath, new Options() { CreateIfMissing = true })) { for (int i = 0; i < 20; i++) { database.Set("AA:" + i, "valueA" + i); database.Set("BB:" + i, "valueB" + i); database.Set("CC:" + i, "valueC" + i); database.Set("BBX:" + i, "valueBX" + i); } } using (var database = new LDB(DatabasePath, new Options())) { using (var iter = database.CreateIterator()) { int testCount = 0; iter.Seek("BB:"); while (iter.IsValid()) { string key = iter.GetKey(); if (!key.StartsWith("BB:")) { break; } string value = iter.GetValue(); testCount++; Console.WriteLine("{0} -> {1}", key, value); iter.Next(); } Assert.Equal(20, testCount); } } }
public void TestCRUD() { var path = CleanTestDB(); using(var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Set("New York", "blue"); Assert.Equal((string)db.Get("Tampa"), "green"); Assert.Equal((string)db.Get("London"), "red"); Assert.Equal((string)db.Get("New York"), "blue"); db.Remove("New York"); Assert.Null(db.Get("New York")); db.Remove("New York"); } }
public void Intro() { using(var database = new LDB(DatabasePath, new Options() { CreateIfMissing = true })) { database.Set("key1", "value1"); Assert.Equal("value1", (string)database.Get("key1")); Assert.True(database.Get("key1") != null); database.Remove("key1"); Assert.False(database.Get("key1") != null); Assert.Null(database.Get("key1")); } }
public void TestCRUD() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Set("New York", "blue"); Assert.Equal((string)db.Get("Tampa"), "green"); Assert.Equal((string)db.Get("London"), "red"); Assert.Equal((string)db.Get("New York"), "blue"); db.Remove("New York"); Assert.Null(db.Get("New York")); db.Remove("New York"); } }
public void Intro() { using (var database = new LDB(DatabasePath, new Options() { CreateIfMissing = true })) { database.Set("key1", "value1"); Assert.Equal("value1", (string)database.Get("key1")); Assert.True(database.Get("key1") != null); database.Remove("key1"); Assert.False(database.Get("key1") != null); Assert.Null(database.Get("key1")); } }
public void ComparatorTest() { using(var database = new LDB(DatabasePath, new Options() { CreateIfMissing = true })) { for(int i = 0; i < 20; i++) { database.Set("AA:" + i, "valueA" + i); database.Set("BB:" + i, "valueB" + i); database.Set("CC:" + i, "valueC" + i); database.Set("BBX:" + i, "valueBX" + i); } } using(var database = new LDB(DatabasePath, new Options())) { using(var iter = database.CreateIterator()) { int testCount = 0; iter.Seek("BB:"); while(iter.IsValid()) { string key = iter.GetKey(); if(!key.StartsWith("BB:")) break; string value = iter.GetValue(); testCount++; Console.WriteLine("{0} -> {1}", key, value); iter.Next(); } Assert.Equal(20, testCount); } } }
public void TestEnumerable() { var path = CleanTestDB(); using(var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Set("New York", "blue"); var expected = new[] { "London", "New York", "Tampa" }; var actual = from kv in db select (string)kv.Key; Assert.Equal(expected, actual.ToArray()); } }
public void TestGetProperty() { var path = CleanTestDB(); using(var db = new LDB(path, new Options { CreateIfMissing = true })) { var r = new Random(0); var data = ""; for(var i = 0; i < 1024; i++) { data += 'a' + r.Next(26); } for(int i = 0; i < 5 * 1024; i++) { db.Set(string.Format("row{0}", i), data); } var stats = db.PropertyValue("leveldb.stats"); Assert.NotNull(stats); Assert.True(stats.Contains("Compactions")); } }
public void TestWriteBatch() { var path = CleanTestDB(); using(var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("NA", "Na"); using(var batch = new WriteBatch()) { batch.Remove("NA") .Set("Tampa", "Green") .Set("London", "red") .Set("New York", "blue"); db.Write(batch); } var expected = new[] { "London", "New York", "Tampa" }; var actual = from kv in db select (string)kv.Key; Assert.Equal(expected, actual.ToArray()); } }
public void Cache() { Database.Dispose(); // open the DB with a cache that is not owned by LevelDB, then // close DB and then free the cache var options = new Options() { CacheSize = 64 }; Database = new LDB(DatabasePath, options); options = null; GC.Collect(); GC.WaitForPendingFinalizers(); Database.Set("key1", "value1"); Database.Dispose(); Database = null; GC.Collect(); GC.WaitForPendingFinalizers(); }
public void TestSnapshot() { var path = CleanTestDB(); using(var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Set("Tampa", "green"); db.Set("London", "red"); db.Remove("New York"); using(var snapShot = db.CreateSnapshot()) { var readOptions = new ReadOptions { Snapshot = snapShot }; db.Set("New York", "blue"); Assert.Equal((string)db.Get("Tampa", readOptions), "green"); Assert.Equal((string)db.Get("London", readOptions), "red"); // Snapshot taken before key was updates Assert.Null(db.Get("New York", readOptions)); } // can see the change now Assert.Equal((string)db.Get("New York"), "blue"); } }