Exemplo n.º 1
0
        private void SetComparator()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[]      k     = new byte[5];
            byte[]      r     = new byte[5];
            Parameter[] param = new Parameter[1];
            param[0]       = new Parameter();
            param[0].name  = HamConst.HAM_PARAM_KEY_TYPE;
            param[0].value = HamConst.HAM_TYPE_CUSTOM;

            compareCounter = 0;
            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1, 0, param);
                db.SetCompareFunc(new CompareFunc(MyCompareFunc));
                db.Insert(k, r);
                k[0] = 1;
                db.Insert(k, r);
                db.Close();
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.Fail("unexpected exception " + e);
            }
            Assert.AreEqual(1, compareCounter);
        }
Exemplo n.º 2
0
 public void Flush()
 {
     Hamster.Environment env = new Hamster.Environment();
     env.Create("ntest.db");
     env.Flush();
     env.Close();
 }
Exemplo n.º 3
0
        private void InsertKey()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[] k  = new byte[5];
            byte[] r1 = new byte[5];
            byte[] r2;
            try {
                env.Create("ntest.db");
                db    = env.CreateDatabase(1);
                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();
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.Fail("unexpected exception " + e);
            }
        }
Exemplo n.º 4
0
        private void InsertRecNo()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[] r1 = new byte[5];
            byte[] r2;
            try
            {
                env.Create("ntest.db");
                db    = env.CreateDatabase(1, HamConst.HAM_RECORD_NUMBER);
                r1[0] = 1;
                var k = db.InsertRecNo(r1);
                r2 = db.Find(k);
                checkEqual(r1, r2);

                r1[0] = 2;
                k     = db.InsertRecNo(r1);
                r2    = db.Find(k);
                checkEqual(r1, r2);

                r1[0] = 3;
                k     = db.InsertRecNo(r1);
                r2    = db.Find(k);
                checkEqual(r1, r2);
            }
            catch (DatabaseException e)
            {
                Assert.Fail("unexpected exception " + e);
            }
            db.Close();
            env.Close();
        }
Exemplo n.º 5
0
        private void InsertKeyInvalidParam()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[] k = new byte[5];
            byte[] r = new byte[5];
            env.Create("ntest.db");
            db = env.CreateDatabase(1);
            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();
            env.Close();
        }
Exemplo n.º 6
0
 public void OpenStringIntIntParameter()
 {
     Hamster.Environment env   = new Hamster.Environment();
     Parameter[]         param = new Parameter[1];
     param[0]       = new Parameter();
     param[0].name  = HamConst.HAM_PARAM_CACHESIZE;
     param[0].value = 1024;
     try {
         env.Create("ntest.db", 0, 0644, param);
         env.Close();
         env.Open("ntest.db", 0, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 7
0
        private void CreateString()
        {
            Database db = new Database();

            Hamster.Environment env = new Hamster.Environment();
            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1);
                db.Close();
                env.Close();
                env.Open("ntest.db");
                db = env.OpenDatabase(1);
                db.Close();
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.Fail("Unexpected exception " + e);
            }
        }
Exemplo n.º 8
0
 public void CreateString()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db");
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 9
0
 public void CreateStringInt()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create(null, HamConst.HAM_IN_MEMORY_DB);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 10
0
 public void CreateStringIntInt()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db", 0, 0644);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 11
0
 public void CreateStringNull()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create(null);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
     }
 }
Exemplo n.º 12
0
 public void OpenStringNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Open("ntestxxxxx.db");
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_FILE_NOT_FOUND, e.ErrorCode);
     }
 }
Exemplo n.º 13
0
        private void AutoCleanupCursors()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            env.Create("ntest.db");
            db = env.CreateDatabase(1);
            Cursor cursor = new Cursor(db);

            // let gc do the cleanup
            env.Close();
        }
Exemplo n.º 14
0
        public void AutoCleanupCursors()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            env.Create("ntest.db");
            db = env.CreateDatabase(1);
            Cursor cursor = new Cursor(db);

            // let gc do the cleanup
            env.Close(HamConst.HAM_AUTO_CLEANUP);
        }
Exemplo n.º 15
0
 public void CreateDatabaseNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db");
         Database db = env.CreateDatabase((short)0);
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
     }
     env.Close();
 }
Exemplo n.º 16
0
 public void CreateDatabaseNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db");
         Database db = env.CreateDatabase((short)0);
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
     }
     env.Close();
 }
Exemplo n.º 17
0
 public void OpenDatabaseNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db");
         Database db = env.OpenDatabase((short)99);
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_DATABASE_NOT_FOUND, e.ErrorCode);
     }
     env.Close();
 }
Exemplo n.º 18
0
        public void Encrypt()
        {
            Hamster.Environment env = new Hamster.Environment();
            byte[] k      = new byte[5];
            byte[] r      = new byte[5];
            byte[] aeskey = new byte[16];

            env.Create("ntest.db");
            env.EnableEncryption(aeskey);
            Database db = env.CreateDatabase((short)13);

            db.Insert(k, r);
            db.Close();
            env.Close();
            env.Open("ntest.db");
            env.EnableEncryption(aeskey);
            db = env.OpenDatabase((short)13);
            byte[] f = db.Find(k);
            checkEqual(k, f);
            db.Close();
            env.Close();
        }
Exemplo n.º 19
0
        private void Recovery()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            env.Create("ntest.db", HamConst.HAM_ENABLE_RECOVERY);
            db = env.CreateDatabase(1);

            byte[] k = new byte[5];
            byte[] r = new byte[5];
            db.Insert(k, r);
            db.Close();
            env.Close();
        }
Exemplo n.º 20
0
 public void CreateStringIntIntParameter()
 {
     Hamster.Environment env   = new Hamster.Environment();
     Parameter[]         param = new Parameter[1];
     param[0]       = new Parameter();
     param[0].name  = HamConst.HAM_PARAM_MAX_ENV_DATABASES;
     param[0].value = 10;
     try {
         env.Create("ntest.db", 0, 0644, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("Unexpected exception " + e);
     }
 }
Exemplo n.º 21
0
 public void CreateStringIntIntParameterNeg()
 {
     Hamster.Environment env   = new Hamster.Environment();
     Parameter[]         param = new Parameter[1];
     param[0]       = new Parameter();
     param[0].name  = HamConst.HAM_PARAM_PAGESIZE;
     param[0].value = 777;
     try {
         env.Create("ntest.db", 0, 0644, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PAGESIZE, e.ErrorCode);
     }
 }
Exemplo n.º 22
0
        private void FindKeyNull()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1);
                byte[] r = db.Find(null);
            }
            catch (NullReferenceException) {
            }
            db.Close();
            env.Close();
        }
Exemplo n.º 23
0
        private void EraseKeyNegative()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[] k = new byte[5];
            env.Create("ntest.db");
            db = env.CreateDatabase(1);
            try {
                db.Erase(null);
            }
            catch (NullReferenceException) {
            }
            db.Close();
            env.Close();
        }
Exemplo n.º 24
0
        private void CreateStringIntIntParameterNeg()
        {
            Hamster.Environment env = new Hamster.Environment();
            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 {
                env.Create("ntest.db", HamConst.HAM_IN_MEMORY, 0644, param);
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
            }
        }
Exemplo n.º 25
0
        public void GetError()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1);
                db.Insert(null, null, HamConst.HAM_OVERWRITE | HamConst.HAM_DUPLICATE);
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
            }
            Assert.AreEqual(HamConst.HAM_INV_PARAMETER, db.GetLastError());
            db.Close();
            env.Close();
        }
Exemplo n.º 26
0
        private void EraseUnknownKey()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[] k = new byte[5];
            env.Create("ntest.db");
            db = env.CreateDatabase(1);
            try {
                db.Erase(k);
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_KEY_NOT_FOUND, e.ErrorCode);
            }
            db.Close();
            env.Close();
        }
Exemplo n.º 27
0
        private void CreateInvalidParameter()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            Parameter[] param = new Parameter[3];
            param[1] = new Parameter();
            param[2] = new Parameter();
            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1, 0, param);
                db.Close();
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
            }
        }
Exemplo n.º 28
0
        private void GetKeyCount()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            env.Create("ntest.db");
            db = env.CreateDatabase(1);

            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();
            env.Close();
        }
Exemplo n.º 29
0
        private void InsertKeyNegative()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database            db  = new Database();

            byte[] k = new byte[5];
            byte[] r = new byte[5];
            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1);
                db.Insert(k, r);
                db.Insert(k, r);
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_DUPLICATE_KEY, e.ErrorCode);
            }
            db.Close();
            env.Close();
        }
Exemplo n.º 30
0
        public void EraseUnknownDatabase()
        {
            Hamster.Environment env = new Hamster.Environment();
            byte[] k = new byte[5];
            byte[] r = new byte[5];

            env.Create("ntest.db");
            Database db = env.CreateDatabase((short)13);

            db.Insert(k, r);
            db.Close();
            try {
                env.EraseDatabase((short)99);
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_DATABASE_NOT_FOUND, e.ErrorCode);
            }
            env.Close();
        }
Exemplo n.º 31
0
        private void Cursor10000Test()
        {
            //create database
            Hamster.Environment env = new Hamster.Environment();
            env.Create("ntest.db");

            Parameter[] param = new Parameter[1];
            param[0]       = new Parameter();
            param[0].name  = HamConst.HAM_PARAM_KEY_TYPE;
            param[0].value = HamConst.HAM_TYPE_UINT64;
            Database db = env.CreateDatabase(1, 0, param);

            //insert records
            for (ulong i = 0; i < 10000; i++)
            {
                byte[] key    = BitConverter.GetBytes(i);
                byte[] record = new byte[20];
                db.Insert(key, record);
            }

            //close database
            db.Close();

            //reopen again
            db = env.OpenDatabase(1);
            Cursor cursor = new Cursor(db);

            cursor.MoveFirst();
            ulong firstKey = BitConverter.ToUInt64(cursor.GetKey(), 0);

            Assert.AreEqual((ulong)0, firstKey);

            cursor.MoveLast();
            ulong lastKey = BitConverter.ToUInt64(cursor.GetKey(), 0);

            Assert.AreEqual((ulong)9999, lastKey);

            //close database
            cursor.Close();
            db.Close();
            env.Close();
        }
Exemplo n.º 32
0
 public void CreateDatabaseShort()
 {
     Hamster.Environment env = new Hamster.Environment();
     byte[] k = new byte[5];
     byte[] r = new byte[5];
     try {
         env.Create("ntest.db");
         Database db = env.CreateDatabase((short)13);
         db.Insert(k, r);
         db.Close();
         db = env.OpenDatabase((short)13);
         byte[] f = db.Find(k);
         checkEqual(r, f);
         // db.Close();
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 33
0
 public void CreateDatabaseShort()
 {
     Hamster.Environment env = new Hamster.Environment();
     byte[] k=new byte[5];
     byte[] r=new byte[5];
     try {
         env.Create("ntest.db");
         Database db = env.CreateDatabase((short)13);
         db.Insert(k, r);
         db.Close();
         db = env.OpenDatabase((short)13);
         byte[] f = db.Find(k);
         checkEqual(r, f);
         // db.Close();
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 34
0
 public void CreateStringIntIntParameterNeg()
 {
     Hamster.Environment env = new Hamster.Environment();
     Parameter[] param = new Parameter[1];
     param[0] = new Parameter();
     param[0].name = HamConst.HAM_PARAM_PAGESIZE;
     param[0].value = 777;
     try {
         env.Create("ntest.db", 0, 0644, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PAGESIZE, e.ErrorCode);
     }
 }
Exemplo n.º 35
0
 private void CreateStringIntIntParameterNeg()
 {
     Hamster.Environment env = new Hamster.Environment();
     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 {
         env.Create("ntest.db", HamConst.HAM_IN_MEMORY, 0644, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
     }
 }
Exemplo n.º 36
0
 private void InsertKeyNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     Database db = new Database();
     byte[] k = new byte[5];
     byte[] r = new byte[5];
     try {
         env.Create("ntest.db");
         db = env.CreateDatabase(1);
         db.Insert(k, r);
         db.Insert(k, r);
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_DUPLICATE_KEY, e.ErrorCode);
     }
     db.Close();
     env.Close();
 }
Exemplo n.º 37
0
        private void InsertRecNo()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            byte[] r1 = new byte[5];
            byte[] r2;
            try
            {
                env.Create("ntest.db");
                db = env.CreateDatabase(1, HamConst.HAM_RECORD_NUMBER);
                r1[0] = 1;
                var k = db.InsertRecNo(r1);
                r2 = db.Find(k);
                checkEqual(r1, r2);

                r1[0] = 2;
                k = db.InsertRecNo(r1);
                r2 = db.Find(k);
                checkEqual(r1, r2);

                r1[0] = 3;
                k = db.InsertRecNo(r1);
                r2 = db.Find(k);
                checkEqual(r1, r2);
            }
            catch (DatabaseException e)
            {
                Assert.Fail("unexpected exception " + e);
            }
            db.Close();
            env.Close();
        }
Exemplo n.º 38
0
        private void SetComparator()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            byte[] k = new byte[5];
            byte[] r = new byte[5];
            Parameter[] param = new Parameter[1];
            param[0] = new Parameter();
            param[0].name = HamConst.HAM_PARAM_KEY_TYPE;
            param[0].value = HamConst.HAM_TYPE_CUSTOM;

            compareCounter = 0;
            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1, 0, param);
                db.SetCompareFunc(new CompareFunc(MyCompareFunc));
                db.Insert(k, r);
                k[0] = 1;
                db.Insert(k, r);
                db.Close();
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.Fail("unexpected exception " + e);
            }
            Assert.AreEqual(1, compareCounter);
        }
Exemplo n.º 39
0
 private void EraseKeyNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     Database db = new Database();
     byte[] k = new byte[5];
     env.Create("ntest.db");
     db = env.CreateDatabase(1);
     try {
         db.Erase(null);
     }
     catch (NullReferenceException) {
     }
     db.Close();
     env.Close();
 }
Exemplo n.º 40
0
        private void ApproxMatching()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            byte[] k1 = new byte[5];
            byte[] r1 = new byte[5];
            k1[0] = 1; r1[0] = 1;
            byte[] k2 = new byte[5];
            byte[] r2 = new byte[5];
            k2[0] = 2; r2[0] = 2;
            byte[] k3 = new byte[5];
            byte[] r3 = new byte[5];
            k3[0] = 3; r3[0] = 3;
            try
            {
                env.Create("ntest.db");
                db = env.CreateDatabase(1);
                db.Insert(k1, r1);
                db.Insert(k2, r2);
                db.Insert(k3, r3);

                Cursor c = new Cursor(db);
                byte[] r = c.Find(k2, HamConst.HAM_FIND_GT_MATCH);
                checkEqual(r, r3);
                checkEqual(k2, k3);
                k2[0] = 2;
                r = c.Find(k2, HamConst.HAM_FIND_GT_MATCH);
                checkEqual(r, r1);
                checkEqual(k2, k1);
                db.Close();
                env.Close();
            }
            catch (DatabaseException e)
            {
                Assert.Fail("unexpected exception " + e);
            }
        }
Exemplo n.º 41
0
 public void OpenDatabaseNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db");
         Database db = env.OpenDatabase((short)99);
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_DATABASE_NOT_FOUND, e.ErrorCode);
     }
     env.Close();
 }
Exemplo n.º 42
0
 public void OpenStringIntIntParameter()
 {
     Hamster.Environment env = new Hamster.Environment();
     Parameter[] param = new Parameter[1];
     param[0] = new Parameter();
     param[0].name = HamConst.HAM_PARAM_CACHESIZE;
     param[0].value = 1024;
     try {
         env.Create("ntest.db", 0, 0644, param);
         env.Close();
         env.Open("ntest.db", 0, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 43
0
 public void OpenStringNegative()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Open("ntestxxxxx.db");
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_FILE_NOT_FOUND, e.ErrorCode);
     }
 }
Exemplo n.º 44
0
 private void InsertKeyInvalidParam()
 {
     Hamster.Environment env = new Hamster.Environment();
     Database db = new Database();
     byte[] k = new byte[5];
     byte[] r = new byte[5];
     env.Create("ntest.db");
     db = env.CreateDatabase(1);
     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();
     env.Close();
 }
Exemplo n.º 45
0
 public void CreateStringIntIntParameter()
 {
     Hamster.Environment env = new Hamster.Environment();
     Parameter[] param = new Parameter[1];
     param[0] = new Parameter();
     param[0].name = HamConst.HAM_PARAM_MAX_ENV_DATABASES;
     param[0].value = 10;
     try {
         env.Create("ntest.db", 0, 0644, param);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("Unexpected exception " + e);
     }
 }
Exemplo n.º 46
0
        public void GetDatabaseNames()
        {
            Database db;
            short[] names;
            short[] s1 ={ 13 };
            short[] s2 ={ 13, 14 };
            short[] s3 ={ 13, 14, 15 };
            Hamster.Environment env = new Hamster.Environment();

            env.Create("ntest.db");
            db = env.CreateDatabase(13);
            names = env.GetDatabaseNames();
            Assert.AreEqual(s1.Length, names.Length);
            for (int i = 0; i < s1.Length; i++)
                Assert.AreEqual(s1[i], names[i]);

            db = env.CreateDatabase(14);
            names = env.GetDatabaseNames();
            Assert.AreEqual(s2.Length, names.Length);
            for (int i = 0; i < s2.Length; i++)
                Assert.AreEqual(s2[i], names[i]);

            db = env.CreateDatabase(15);
            names = env.GetDatabaseNames();
            Assert.AreEqual(s3.Length, names.Length);
            for (int i = 0; i < s3.Length; i++)
                Assert.AreEqual(s3[i], names[i]);

            env.Close();
        }
Exemplo n.º 47
0
 private void FindKeyNull()
 {
     Hamster.Environment env = new Hamster.Environment();
     Database db = new Database();
     try {
         env.Create("ntest.db");
         db = env.CreateDatabase(1);
         byte[] r = db.Find(null);
     }
     catch (NullReferenceException) {
     }
     db.Close();
     env.Close();
 }
Exemplo n.º 48
0
 private void FindUnknownKey()
 {
     Hamster.Environment env = new Hamster.Environment();
     Database db = new Database();
     byte[] k = new byte[5];
     try {
         env.Create("ntest.db");
         db = env.CreateDatabase(1);
         byte[] r = db.Find(k);
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_KEY_NOT_FOUND, e.ErrorCode);
     }
     db.Close();
     env.Close();
 }
Exemplo n.º 49
0
        private void EraseKeyTwice()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            byte[] k = new byte[5];
            byte[] r = new byte[5];

            env.Create("ntest.db");
            db = env.CreateDatabase(1);
            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();
            env.Close();
        }
Exemplo n.º 50
0
 public void Flush()
 {
     Hamster.Environment env = new Hamster.Environment();
     env.Create("ntest.db");
     env.Flush();
     env.Close();
 }
Exemplo n.º 51
0
        private void Cursor10000Test()
        {
            //create database
            Hamster.Environment env = new Hamster.Environment();
            env.Create("ntest.db");

            Parameter[] param = new Parameter[1];
            param[0] = new Parameter();
            param[0].name = HamConst.HAM_PARAM_KEY_TYPE;
            param[0].value = HamConst.HAM_TYPE_UINT64;
            Database db = env.CreateDatabase(1, 0, param);

            //insert records
            for (ulong i = 0; i < 10000; i++)
            {
                byte[] key = BitConverter.GetBytes(i);
                byte[] record = new byte[20];
                db.Insert(key, record);
            }

            //close database
            db.Close();

            //reopen again
            db = env.OpenDatabase(1);
            Cursor cursor = new Cursor(db);

            cursor.MoveFirst();
            ulong firstKey = BitConverter.ToUInt64(cursor.GetKey(), 0);
            Assert.AreEqual((ulong)0, firstKey);

            cursor.MoveLast();
            ulong lastKey = BitConverter.ToUInt64(cursor.GetKey(), 0);
            Assert.AreEqual((ulong)9999, lastKey);

            //close database
            cursor.Close();
            db.Close();
            env.Close();
        }
Exemplo n.º 52
0
        public void EraseUnknownDatabase()
        {
            Hamster.Environment env = new Hamster.Environment();
            byte[] k = new byte[5];
            byte[] r = new byte[5];

            env.Create("ntest.db");
            Database db = env.CreateDatabase((short)13);
            db.Insert(k, r);
            db.Close();
            try {
                env.EraseDatabase((short)99);
            }
            catch (DatabaseException e) {
                Assert.AreEqual(HamConst.HAM_DATABASE_NOT_FOUND, e.ErrorCode);
            }
            env.Close();
        }
Exemplo n.º 53
0
        private void Recovery()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            env.Create("ntest.db", HamConst.HAM_ENABLE_RECOVERY);
            db = env.CreateDatabase(1);

            byte[] k = new byte[5];
            byte[] r = new byte[5];
            db.Insert(k, r);
            db.Close();
            env.Close();
        }
Exemplo n.º 54
0
        public void Encrypt()
        {
            Hamster.Environment env = new Hamster.Environment();
            byte[] k = new byte[5];
            byte[] r = new byte[5];
            byte[] aeskey = new byte[16];

            env.Create("ntest.db");
            env.EnableEncryption(aeskey);
            Database db = env.CreateDatabase((short)13);
            db.Insert(k, r);
            db.Close();
            env.Close();
            env.Open("ntest.db");
            env.EnableEncryption(aeskey);
            db = env.OpenDatabase((short)13);
            byte[] f = db.Find(k);
            checkEqual(k, f);
            db.Close();
            env.Close();
        }
Exemplo n.º 55
0
 private void InsertKeyOverwrite()
 {
     Hamster.Environment env = new Hamster.Environment();
     Database db = new Database();
     byte[] k = new byte[5];
     byte[] r = new byte[5];
     try {
         env.Create("ntest.db");
         db = env.CreateDatabase(1);
         db.Insert(k, r);
         r[0] = 1;
         db.Insert(k, r, HamConst.HAM_OVERWRITE);
         byte[] r2 = db.Find(k);
         checkEqual(r, r2);
         db.Close();
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 56
0
 public void CreateStringNull()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create(null);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.AreEqual(HamConst.HAM_INV_PARAMETER, e.ErrorCode);
     }
 }
Exemplo n.º 57
0
        private void GetKeyCount()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            env.Create("ntest.db");
            db = env.CreateDatabase(1);

            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();
            env.Close();
        }
Exemplo n.º 58
0
 public void CreateStringInt()
 {
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create(null, HamConst.HAM_IN_MEMORY_DB);
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("unexpected exception " + e);
     }
 }
Exemplo n.º 59
0
 private void CreateString()
 {
     Database db = new Database();
     Hamster.Environment env = new Hamster.Environment();
     try {
         env.Create("ntest.db");
         db = env.CreateDatabase(1);
         db.Close();
         env.Close();
         env.Open("ntest.db");
         db = env.OpenDatabase(1);
         db.Close();
         env.Close();
     }
     catch (DatabaseException e) {
         Assert.Fail("Unexpected exception " + e);
     }
 }
Exemplo n.º 60
0
        private void InsertKey()
        {
            Hamster.Environment env = new Hamster.Environment();
            Database db = new Database();
            byte[] k = new byte[5];
            byte[] r1 = new byte[5];
            byte[] r2;
            try {
                env.Create("ntest.db");
                db = env.CreateDatabase(1);
                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();
                env.Close();
            }
            catch (DatabaseException e) {
                Assert.Fail("unexpected exception " + e);
            }
        }