move MemoryDB's tests into tests module

This commit is contained in:
Guanqun Lu 2017-05-27 11:33:18 +08:00
parent 4efd673c19
commit ce8f8f40d7

View File

@ -250,46 +250,51 @@ impl HashDB for MemoryDB {
} }
} }
#[test] #[cfg(test)]
fn memorydb_remove_and_purge() { mod tests {
let hello_bytes = b"Hello world!"; use super::*;
let hello_key = hello_bytes.sha3();
let mut m = MemoryDB::new(); #[test]
m.remove(&hello_key); fn memorydb_remove_and_purge() {
assert_eq!(m.raw(&hello_key).unwrap().1, -1); let hello_bytes = b"Hello world!";
m.purge(); let hello_key = hello_bytes.sha3();
assert_eq!(m.raw(&hello_key).unwrap().1, -1);
m.insert(hello_bytes);
assert_eq!(m.raw(&hello_key).unwrap().1, 0);
m.purge();
assert_eq!(m.raw(&hello_key), None);
let mut m = MemoryDB::new(); let mut m = MemoryDB::new();
assert!(m.remove_and_purge(&hello_key).is_none()); m.remove(&hello_key);
assert_eq!(m.raw(&hello_key).unwrap().1, -1); assert_eq!(m.raw(&hello_key).unwrap().1, -1);
m.insert(hello_bytes); m.purge();
m.insert(hello_bytes); assert_eq!(m.raw(&hello_key).unwrap().1, -1);
assert_eq!(m.raw(&hello_key).unwrap().1, 1); m.insert(hello_bytes);
assert_eq!(&*m.remove_and_purge(&hello_key).unwrap(), hello_bytes); assert_eq!(m.raw(&hello_key).unwrap().1, 0);
assert_eq!(m.raw(&hello_key), None); m.purge();
assert!(m.remove_and_purge(&hello_key).is_none()); assert_eq!(m.raw(&hello_key), None);
}
let mut m = MemoryDB::new();
#[test] assert!(m.remove_and_purge(&hello_key).is_none());
fn consolidate() { assert_eq!(m.raw(&hello_key).unwrap().1, -1);
let mut main = MemoryDB::new(); m.insert(hello_bytes);
let mut other = MemoryDB::new(); m.insert(hello_bytes);
let remove_key = other.insert(b"doggo"); assert_eq!(m.raw(&hello_key).unwrap().1, 1);
main.remove(&remove_key); assert_eq!(&*m.remove_and_purge(&hello_key).unwrap(), hello_bytes);
assert_eq!(m.raw(&hello_key), None);
let insert_key = other.insert(b"arf"); assert!(m.remove_and_purge(&hello_key).is_none());
main.emplace(insert_key, DBValue::from_slice(b"arf")); }
main.consolidate(other); #[test]
fn consolidate() {
let overlay = main.drain(); let mut main = MemoryDB::new();
let mut other = MemoryDB::new();
assert_eq!(overlay.get(&remove_key).unwrap(), &(DBValue::from_slice(b"doggo"), 0)); let remove_key = other.insert(b"doggo");
assert_eq!(overlay.get(&insert_key).unwrap(), &(DBValue::from_slice(b"arf"), 2)); main.remove(&remove_key);
let insert_key = other.insert(b"arf");
main.emplace(insert_key, DBValue::from_slice(b"arf"));
main.consolidate(other);
let overlay = main.drain();
assert_eq!(overlay.get(&remove_key).unwrap(), &(DBValue::from_slice(b"doggo"), 0));
assert_eq!(overlay.get(&insert_key).unwrap(), &(DBValue::from_slice(b"arf"), 2));
}
} }