public void TestIterator() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Put("Tampa", "green"); db.Put("London", "red"); db.Put("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.Put("Tampa", "green"); db.Put("London", "red"); db.Delete("New York"); using (var snapShot = db.CreateSnapshot()) { var readOptions = new ReadOptions { Snapshot = snapShot }; db.Put("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.Put("NA", "Na"); using (var batch = new WriteBatch()) { batch.Delete("NA") .Put("Tampa", "Green") .Put("London", "red") .Put("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 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.Put(string.Format("row{0}", i), data); } var stats = db.PropertyValue("leveldb.stats"); Assert.NotNull(stats); Assert.True(stats.Contains("Compactions")); } }
public void TestEnumerable() { var path = CleanTestDB(); using (var db = new LDB(path, new Options { CreateIfMissing = true })) { db.Put("Tampa", "green"); db.Put("London", "red"); db.Put("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.Put("AA:" + i, "valueA" + i); database.Put("BB:" + i, "valueB" + i); database.Put("CC:" + i, "valueC" + i); database.Put("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.Put("Tampa", "green"); db.Put("London", "red"); db.Put("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.Delete("New York"); Assert.Null(db.Get("New York")); db.Delete("New York"); } }
public void Intro() { using (var database = new LDB(DatabasePath, new Options() { CreateIfMissing = true })) { database.Put("key1", "value1"); Assert.Equal("value1", (string)database.Get("key1")); Assert.True(database.Get("key1") != null); database.Delete("key1"); Assert.False(database.Get("key1") != null); Assert.Null(database.Get("key1")); } }