From fb60ccd04d17bc24abe45662832bbeb42c2d13f0 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Sat, 8 Apr 2023 18:03:49 +0300 Subject: [PATCH] Improve test suite --- core/mvcc/database/src/lib.rs | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/core/mvcc/database/src/lib.rs b/core/mvcc/database/src/lib.rs index 88584c1b3..d6877bad1 100644 --- a/core/mvcc/database/src/lib.rs +++ b/core/mvcc/database/src/lib.rs @@ -412,6 +412,66 @@ fn get_timestamp(inner: &mut DatabaseInner) -> u64 { mod tests { use super::*; + #[test] + fn test_insert_read() { + let clock = LocalClock::new(); + let db = Database::new(clock); + + let tx1 = db.begin_tx(); + let tx1_row = Row { + id: 1, + data: "Hello".to_string(), + }; + db.insert(tx1, tx1_row.clone()); + let row = db.read(tx1, 1).unwrap(); + assert_eq!(tx1_row, row); + db.commit_tx(tx1); + + let tx2 = db.begin_tx(); + let row = db.read(tx2, 1).unwrap(); + assert_eq!(tx1_row, row); + } + + #[test] + fn test_read_nonexistent() { + let clock = LocalClock::new(); + let db = Database::new(clock); + let tx = db.begin_tx(); + let row = db.read(tx, 1); + assert!(row.is_none()); + } + + #[test] + fn test_delete() { + let clock = LocalClock::new(); + let db = Database::new(clock); + + let tx1 = db.begin_tx(); + let tx1_row = Row { + id: 1, + data: "Hello".to_string(), + }; + db.insert(tx1, tx1_row.clone()); + let row = db.read(tx1, 1).unwrap(); + assert_eq!(tx1_row, row); + db.delete(tx1, 1); + let row = db.read(tx1, 1); + assert!(row.is_none()); + db.commit_tx(tx1); + + let tx2 = db.begin_tx(); + let row = db.read(tx2, 1); + assert!(row.is_none()); + } + + #[test] + fn test_delete_nonexistent() { + let clock = LocalClock::new(); + let db = Database::new(clock); + let tx = db.begin_tx(); + assert_eq!(false, db.delete(tx, 1)); + } + #[test] fn test_commit() { let clock = LocalClock::new();