public void AutoCleanupCursors() { Database db = new Database(); db.Create("ntest.db"); Cursor cursor = new Cursor(db); // let gc do the cleanup db.Close(HamConst.HAM_AUTO_CLEANUP); }
public void AutoCleanupCursors4() { Database db = new Database(); db.Create("ntest.db"); Cursor cursor1 = new Cursor(db); Cursor cursor2 = cursor1.Clone(); Cursor cursor3 = cursor1.Clone(); Cursor cursor4 = cursor1.Clone(); Cursor cursor5 = cursor1.Clone(); cursor3.Close(); cursor5.Close(); // let gc do the cleanup db.Close(HamConst.HAM_AUTO_CLEANUP); }
public void InsertKey() { Database db = new Database(); byte[] k = new byte[5]; byte[] r1 = new byte[5]; byte[] r2; try { db.Create("ntest.db"); k[0] = 1; r1[0] = 1; db.Insert(k, r1); r2 = db.Find(k); checkEqual(r1, r2); k[0] = 2; r1[0] = 2; db.Insert(k, r1); r2 = db.Find(k); checkEqual(r1, r2); k[0] = 3; r1[0] = 3; db.Insert(k, r1); r2 = db.Find(k); checkEqual(r1, r2); db.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
public void CreateStringIntIntParameter() { Database db = new Database(); Parameter[] param = new Parameter[1]; param[0] = new Parameter(); param[0].name = HamConst.HAM_PARAM_CACHESIZE; param[0].value = 1024; try { db.Create("ntest.db", 0, 0644, param); db.Close(); } catch (DatabaseException e) { Assert.Fail("Unexpected exception " + e); } }
public void SetUp() { db = new Database(); db.Create("ntest.db", HamConst.HAM_ENABLE_DUPLICATES); }
public void SetPrefixComparator() { Database db = new Database(); byte[] k = new byte[25]; byte[] r = new byte[25]; compareCounter = 0; try { db.Create("ntest.db"); db.SetPrefixCompareFunc(new PrefixCompareFunc(MyPrefixCompareFunc)); db.Insert(k, r); k[0] = 1; db.Insert(k, r); db.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } Assert.AreEqual(1, compareCounter); }
public void SetDuplicateComparator() { Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; compareCounter = 0; try { db.Create("ntest.db", HamConst.HAM_ENABLE_DUPLICATES|HamConst.HAM_SORT_DUPLICATES); db.SetDuplicateCompareFunc(new DuplicateCompareFunc(MyDupeCompareFunc)); db.Insert(k, r); r[0] = 1; db.Insert(k, r, HamConst.HAM_DUPLICATE); db.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } Assert.AreEqual(1, compareCounter); }
public void InsertKeyOverwrite() { Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; try { db.Create("ntest.db"); db.Insert(k, r); r[0] = 1; db.Insert(k, r, HamConst.HAM_OVERWRITE); byte[] r2 = db.Find(k); checkEqual(r, r2); db.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
public void FindKeyNull() { Database db = new Database(); try { db.Create("ntest.db"); byte[] r = db.Find(null); } catch (NullReferenceException) { } db.Close(); }
public void EraseKeyTwice() { Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; db.Create("ntest.db"); db.Insert(k, r); byte[] r2 = db.Find(k); checkEqual(r, r2); db.Erase(k); try { db.Erase(k); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_KEY_NOT_FOUND, e.ErrorCode); } db.Close(); }
public void EraseKeyNegative() { Database db = new Database(); byte[] k = new byte[5]; db.Create("ntest.db"); try { db.Erase(null); } catch (NullReferenceException) { } db.Close(); }
public void EnableCompressionInt() { Database db = new Database(); try { db.Create("ntest.db"); db.EnableCompression(999); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode); } db.Close(); }
public void EnableCompression() { Database db = new Database(); db.Create("ntest.db"); db.EnableCompression(); db.Close(); }
public void CreateStringIntIntParameterNeg() { Database db = new Database(); Parameter[] param = new Parameter[1]; param[0] = new Parameter(); param[0].name = HamConst.HAM_PARAM_CACHESIZE; param[0].value = 1024; try { db.Create("ntest.db", HamConst.HAM_IN_MEMORY_DB, 0644, param); db.Close(); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode); } }
public void InsertKeyInvalidParam() { Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; db.Create("ntest.db"); try { db.Insert(null, r); } catch (NullReferenceException) { } try { db.Insert(k, null); } catch (NullReferenceException) { } try { db.Insert(k, r, 9999); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode); } db.Close(); }
public void InsertKeyNegative() { Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; try { db.Create("ntest.db"); db.Insert(k, r); db.Insert(k, r); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_DUPLICATE_KEY, e.ErrorCode); } db.Close(); }
public void FindUnknownKey() { Database db = new Database(); byte[] k = new byte[5]; try { db.Create("ntest.db"); byte[] r = db.Find(k); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_KEY_NOT_FOUND, e.ErrorCode); } db.Close(); }
public void Recovery() { Database db = new Database(); db.Create("ntest.db", HamConst.HAM_ENABLE_RECOVERY); byte[] k = new byte[5]; byte[] r = new byte[5]; db.Insert(k, r); db.Close(); }
public void Flush() { Database db = new Database(); db.Create("ntest.db"); db.Flush(); db.Close(); }
public void SetErrorHandler() { Database db = new Database(); ErrorHandler eh = new ErrorHandler(MyErrorHandler); try { Database.SetErrorHandler(eh); db.Create(null); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode); Assert.AreEqual(1, errorCounter); } Database.SetErrorHandler(null); }
public void GetEnvironment() { Database db = new Database(); db.Create("ntest.db"); Hamster.Environment env = db.GetEnvironment(); Assert.AreNotEqual(0, env.GetHandle()); db.Close(); }
private Database CreateDatabase(string file) { List<Parameter> list = new List<Parameter>(); Parameter param1 = new Parameter(); param1.name = HamConst.HAM_PARAM_CACHESIZE; param1.value = 768 * 1024 * 1024; list.Add(param1); Parameter param2 = new Parameter(); param2.name = HamConst.HAM_PARAM_KEYSIZE; param2.value = 8; // sizeof(ulong); list.Add(param2); Database db = new Database(); db.Create(file, 0, 0, list.ToArray()); db.SetCompareFunc(new CompareFunc(NumericalCompareFunc)); return db; }
public void GetError() { Database db = new Database(); try { db.Create(null); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode); } Assert.AreEqual(HamConst.HAM_INV_PARAMETER, db.GetLastError()); db.Close(); }
public void CreateInvalidParameter() { Database db = new Database(); Parameter[] param = new Parameter[3]; param[1] = new Parameter(); param[2] = new Parameter(); try { db.Create("ntest.db", 0, 0, param); db.Close(); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode); } }
public void GetKeyCount() { Database db = new Database(); db.Create("ntest.db"); byte[] k = new byte[5]; byte[] r = new byte[5]; Assert.AreEqual(0, db.GetKeyCount()); db.Insert(k, r); Assert.AreEqual(1, db.GetKeyCount()); k[0] = 1; db.Insert(k, r); Assert.AreEqual(2, db.GetKeyCount()); db.Close(); }
static void Main(string[] args) { byte[] key = new byte[5]; byte[] record = new byte[5]; Database db = new Database(); /* * first, create a new Database */ db.Create("test.db"); /* * now we can insert, delete or lookup values in the Database * * for our test program, we just insert a few values, then look them * up, then delete them and try to look them up again (which will fail). */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; record[0] = (byte)i; db.Insert(key, record); } /* * now look up all values */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; byte[] r = db.Find(key); /* * check if the value is ok */ if (r[0] != (byte)i) { Console.Out.WriteLine("db.Find() returned bad value"); return; } } /* * close the Database handle, then re-open it (just to demonstrate how * to open a Database file) */ db.Close(); db.Open("test.db"); /* * now erase all values */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; db.Erase(key); } /* * once more we try to find all values... every db.Find() call must * now fail with HAM_KEY_NOT_FOUND */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; try { byte[] r = db.Find(key); } catch (DatabaseException e) { if (e.ErrorCode != HamConst.HAM_KEY_NOT_FOUND) { Console.Out.WriteLine("db.Find() returned error " + e); return; } } } /* * We're done! No need to close the Database handle - it's closed automatically */ Console.Out.WriteLine("Success!"); }
public void CreateString() { Database db = new Database(); try { db.Create("ntest.db"); db.Close(); db.Open("ntest.db"); db.Close(); } catch (DatabaseException e) { Assert.Fail("Unexpected exception " + e); } }