public void TestEmptyException() { testName = "TestEmptyException"; SetUpTest(true); DatabaseEnvironment master = SetUpEnv(testHome + "/master", 100, 8000, true); Transaction txn = master.BeginTransaction(); txn.Commit(); byte[] token = txn.CommitToken; Assert.AreEqual(TransactionAppliedStatus.EMPTY_TRANSACTION, master.IsTransactionApplied(token, 1000)); master.Close(); }
public void TestInvalidToken() { DatabaseEntry key, data; DatabaseEnvironment master = SetUpEnv("./master", 100, 8000, true); BTreeDatabase db = Open(master, true); Transaction txn = master.BeginTransaction(); key = new DatabaseEntry( ASCIIEncoding.ASCII.GetBytes("Key")); data = new DatabaseEntry( ASCIIEncoding.ASCII.GetBytes("Data")); db.Put(key, data, txn); txn.Commit(); byte[] token = txn.CommitToken; token[19] += 123; Assert.Throws <DatabaseException>(delegate { master.IsTransactionApplied(token, 1000); }); db.Close(); master.Close(); }
public void TestCommitSuccess() { testName = "TestCommitSuccess"; SetUpTest(true); string[] keys = { "key 1", "key 2", "key 3", "key 4", "key 5", "key 6", "key 7", "key 8","key 9", "key 10" }; DatabaseEnvironment master = SetUpEnv(testHome + "/master", 100, masterPort, true); DatabaseEnvironment client = SetUpEnv(testHome + "/client", 0, clientPort, false); master.RepMgrStartMaster(2); Thread.Sleep(2000); client.RepMgrStartClient(2); BTreeDatabase db1 = Open(master, true); BTreeDatabase db2 = null; for (; ;) { if (db2 == null) { try { db2 = Open(client, false); break; } catch (DatabaseException) { if (db2 != null) { db2.Close(true); db2 = null; } System.Threading.Thread.Sleep(1000); continue; } } } try { for (int i = 0; i < 3; i++) { Transaction txn = master.BeginTransaction(); // Get the key. DatabaseEntry key, data; key = new DatabaseEntry( ASCIIEncoding.ASCII.GetBytes(keys[i])); data = new DatabaseEntry( ASCIIEncoding.ASCII.GetBytes(keys[i])); db1.Put(key, data, txn); txn.Commit(); byte[] token = txn.CommitToken; Assert.AreEqual(master.IsTransactionApplied(token, 5000), TransactionAppliedStatus.APPLIED); Assert.AreEqual(client.IsTransactionApplied(token, 200000), TransactionAppliedStatus.APPLIED); } } finally { db1.Close(); db2.Close(); master.Close(); client.Close(); } }