summaryrefslogtreecommitdiffstats
path: root/libimagstore
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-09-20 16:30:19 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-10-07 17:32:35 +0200
commitd9f4898a3afb4bb515d7d420421e31e02779034f (patch)
tree3da4a6ca9751023f71e31584fb4fb65313061db2 /libimagstore
parentdd621a08a6e7fcc250142a2175f5e568156708ad (diff)
Abstract testing of hook execution in helper function
Diffstat (limited to 'libimagstore')
-rw-r--r--libimagstore/src/store.rs72
1 files changed, 68 insertions, 4 deletions
diff --git a/libimagstore/src/store.rs b/libimagstore/src/store.rs
index 07511e28..4a9a4524 100644
--- a/libimagstore/src/store.rs
+++ b/libimagstore/src/store.rs
@@ -2582,16 +2582,80 @@ aspect = "test"
"#
}
- #[test]
- fn test_pre_create() {
+ fn test_hook_execution(hook_positions: &[HP]) {
let mut store = get_store_with_config();
let pos = HP::PreCreate;
let hook = TestHook::new(pos.clone(), true, false);
- assert!(store.register_hook(pos, "test", Box::new(hook)).map_err(|e| println!("{:?}", e)).is_ok());
+ println!("Registering hooks...");
+ for pos in hook_positions {
+ let hook = TestHook::new(pos.clone(), true, false);
+ println!("\tRegistering: {:?}", pos);
+ assert!(store.register_hook(pos.clone(), "test", Box::new(hook))
+ .map_err(|e| println!("{:?}", e))
+ .is_ok()
+ );
+ }
+ println!("... done.");
+
+ let pb = StoreId::new_baseless(PathBuf::from("test")).unwrap();
+ let pb_moved = StoreId::new_baseless(PathBuf::from("test-moved")).unwrap();
- let pb = StoreId::new_baseless(PathBuf::from("test")).unwrap();
+ println!("Creating {:?}", pb);
assert!(store.create(pb.clone()).is_ok());
+
+ {
+ println!("Getting {:?} -> Some?", pb);
+ assert!(match store.get(pb.clone()) {
+ Ok(Some(_)) => true,
+ _ => false,
+ });
+ }
+
+ {
+ println!("Getting {:?} -> None?", pb_moved);
+ assert!(match store.get(pb_moved.clone()) {
+ Ok(None) => true,
+ _ => false,
+ });
+ }
+
+ {
+ println!("Moving {:?} -> {:?}", pb, pb_moved);
+ assert!(store.move_by_id(pb.clone(), pb_moved.clone()).is_ok());
+ }
+
+ {
+ println!("Getting {:?} -> None", pb);
+ assert!(match store.get(pb.clone()) {
+ Ok(None) => true,
+ _ => false,
+ });
+ }
+
+ {
+ println!("Getting {:?} -> Some", pb_moved);
+ assert!(match store.get(pb_moved.clone()) {
+ Ok(Some(_)) => true,
+ _ => false,
+ });
+ }
+
+ {
+ println!("Getting {:?} -> Some -> updating", pb_moved);
+ assert!(match store.get(pb_moved.clone()).map_err(|e| println!("ERROR GETTING: {:?}", e)) {
+ Ok(Some(fle)) => store.update(fle).map_err(|e| println!("ERROR UPDATING: {:?}", e)).is_ok(),
+ _ => false,
+ });
+ }
+
+ println!("Deleting {:?}", pb_moved);
+ assert!(store.delete(pb_moved).is_ok());
+ }
+
+ #[test]
+ fn test_pre_create() {
+ test_hook_execution(&[HP::PreCreate]);
}
}