From 54f28df5b18bad81b471ace287f168fa9a8860ef Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Tue, 21 May 2019 16:37:15 +1000 Subject: [PATCH] Improve testing for `Store` impls --- beacon_node/db/src/lib.rs | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/beacon_node/db/src/lib.rs b/beacon_node/db/src/lib.rs index d31dc06b0b..c0b447c5fe 100644 --- a/beacon_node/db/src/lib.rs +++ b/beacon_node/db/src/lib.rs @@ -130,35 +130,40 @@ mod tests { } } - #[test] - fn leveldb_can_store_and_retrieve() { - let dir = tempdir().unwrap(); - let path = dir.path(); - - let store = LevelDB::open(&path).unwrap(); - + fn test_impl(store: impl Store) { let key = Hash256::random(); let item = StorableThing { a: 1, b: 42 }; + assert_eq!(store.exists::(&key), Ok(false)); + store.put(&key, &item).unwrap(); - let retrieved = store.get(&key).unwrap().unwrap(); + assert_eq!(store.exists::(&key), Ok(true)); + let retrieved = store.get(&key).unwrap().unwrap(); assert_eq!(item, retrieved); + + store.delete::(&key).unwrap(); + + assert_eq!(store.exists::(&key), Ok(false)); + + assert_eq!(store.get::(&key), Ok(None)); } #[test] - fn memorydb_can_store_and_retrieve() { + fn leveldb() { + let dir = tempdir().unwrap(); + let path = dir.path(); + let store = LevelDB::open(&path).unwrap(); + + test_impl(store); + } + + #[test] + fn memorydb() { let store = MemoryDB::open(); - let key = Hash256::random(); - let item = StorableThing { a: 1, b: 42 }; - - store.put(&key, &item).unwrap(); - - let retrieved = store.get(&key).unwrap().unwrap(); - - assert_eq!(item, retrieved); + test_impl(store); } #[test]