Improve testing for Store
impls
This commit is contained in:
parent
b3a94de086
commit
54f28df5b1
@ -130,35 +130,40 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
fn test_impl(store: impl Store) {
|
||||||
fn leveldb_can_store_and_retrieve() {
|
|
||||||
let dir = tempdir().unwrap();
|
|
||||||
let path = dir.path();
|
|
||||||
|
|
||||||
let store = LevelDB::open(&path).unwrap();
|
|
||||||
|
|
||||||
let key = Hash256::random();
|
let key = Hash256::random();
|
||||||
let item = StorableThing { a: 1, b: 42 };
|
let item = StorableThing { a: 1, b: 42 };
|
||||||
|
|
||||||
|
assert_eq!(store.exists::<StorableThing>(&key), Ok(false));
|
||||||
|
|
||||||
store.put(&key, &item).unwrap();
|
store.put(&key, &item).unwrap();
|
||||||
|
|
||||||
let retrieved = store.get(&key).unwrap().unwrap();
|
assert_eq!(store.exists::<StorableThing>(&key), Ok(true));
|
||||||
|
|
||||||
|
let retrieved = store.get(&key).unwrap().unwrap();
|
||||||
assert_eq!(item, retrieved);
|
assert_eq!(item, retrieved);
|
||||||
|
|
||||||
|
store.delete::<StorableThing>(&key).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(store.exists::<StorableThing>(&key), Ok(false));
|
||||||
|
|
||||||
|
assert_eq!(store.get::<StorableThing>(&key), Ok(None));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[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 store = MemoryDB::open();
|
||||||
|
|
||||||
let key = Hash256::random();
|
test_impl(store);
|
||||||
let item = StorableThing { a: 1, b: 42 };
|
|
||||||
|
|
||||||
store.put(&key, &item).unwrap();
|
|
||||||
|
|
||||||
let retrieved = store.get(&key).unwrap().unwrap();
|
|
||||||
|
|
||||||
assert_eq!(item, retrieved);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
Reference in New Issue
Block a user