public void TestMoveNext()
        {
            testName = "TestMoveNext";
            SetUpTest(true);
            DatabaseEnvironment env;
            RecnoDatabase       db;

            Logging(testHome, testName, out env, out db);

            // Get log cursor to read/write log.
            LogCursor logCursor = env.GetLogCursor();

            logCursor.MoveLast();
            DatabaseEntry curRec = logCursor.CurrentRecord;

            for (int i = 0; i < 1000; i++)
            {
                db.Append(new DatabaseEntry(
                              ASCIIEncoding.ASCII.GetBytes("new data")));
            }

            Assert.IsTrue(logCursor.MoveNext());

            logCursor.MoveNext();

            // Close the log cursor.
            logCursor.Close();
            db.Close();
            env.Close();
        }
        public void TestMovePrev()
        {
            testName = "TestMovePrev";
            SetUpTest(true);
            DatabaseEnvironment env;
            LSN           lsn;
            RecnoDatabase db;

            Logging(testHome, testName, out env, out db);

            // Get log cursor to read/write log.
            LogCursor logCursor = env.GetLogCursor();

            // Get the last two LSN in log file.
            logCursor.MoveLast();
            Assert.IsTrue(logCursor.MovePrev());

            // Close all.
            logCursor.Close();
            db.Close();
            env.Close();
        }
        public void TestMoveLast()
        {
            testName = "TestMoveLast";
            SetUpTest(true);
            DatabaseEnvironment env;
            RecnoDatabase       db;

            Logging(testHome, testName, out env, out db);

            // Get log cursor to read/write log.
            LogCursor logCursor = env.GetLogCursor();

            // Move to the last LSN in log file.
            Assert.IsTrue(logCursor.MoveLast());

            // The offset of last LSN shouldn't be 0.
            Assert.AreNotEqual(0, logCursor.CurrentLSN.Offset);

            // Close all.
            logCursor.Close();
            db.Close();
            env.Close();
        }
        public void TestRefresh()
        {
            testName = "TestRefresh";
            SetUpTest(true);
            DatabaseEnvironment env;
            LSN           lsn;
            RecnoDatabase db;

            Logging(testHome, testName, out env, out db);

            // Get log cursor to read/write log.
            LogCursor logCursor = env.GetLogCursor();

            // Move the cursor to the last record.
            logCursor.MoveLast();
            DatabaseEntry curRec = logCursor.CurrentRecord;

            // Put some new records into database.
            for (int i = 0; i < 10; i++)
            {
                db.Append(new DatabaseEntry(
                              ASCIIEncoding.ASCII.GetBytes("new data")));
            }

            // Get the current record that cursor points to.
            logCursor.Refresh();

            // It shouldn't be changed.
            Assert.AreEqual(curRec.Data,
                            logCursor.CurrentRecord.Data);

            // Close all.
            logCursor.Close();
            db.Close();
            env.Close();
        }