public void TestAlreadyLocked() { Assert.ThrowsException <AlreadyLockedException>(() => { using var _ = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.OpenOrCreate, planeDBOptions); using var __ = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.OpenOrCreate, planeDBOptions); }); }
public void TestTyped() { using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.CreateNew, planeDBOptions)) { for (var i = 0; i < COUNT; ++i) { db[i.ToString()] = i.ToString() + i + i + i + i; } } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { for (var i = 0; i < COUNT; ++i) { Assert.AreEqual(db[i.ToString()], i.ToString() + i + i + i + i); } Assert.IsTrue(db.TryRemove("0", out var removed)); Assert.AreEqual("00000", removed); } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { for (var i = 1; i < COUNT; ++i) { Assert.AreEqual(db[i.ToString()], i.ToString() + i + i + i + i); } } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { for (var i = 0; i < COUNT; ++i) { var k = i.ToString(); if (i == 0) { Assert.IsFalse(db.TryGetValue(k, out _)); } else { Assert.IsTrue(db.TryGetValue(k, out var v)); Assert.AreEqual(v, i.ToString() + i + i + i + i); } } } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { db.Add("test1", "test1"); } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { db.Add("test2", "test2"); } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { db.AddOrUpdate("test2", "test3", (_, __) => "test3"); } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { db.Add("test3", "test4"); } using (var db = new StringPlaneDB(new DirectoryInfo("testdb"), FileMode.Open, planeDBOptions)) { foreach (var i in new[] { new[] { "test1", "test1" }, new[] { "test2", "test3" }, new[] { "test3", "test4" } }) { Assert.IsTrue(db.TryGetValue(i[0], out var v)); Assert.AreEqual(i[1], v); } } }