summaryrefslogtreecommitdiffstats
path: root/lib/core/libimagstore/src/store.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/core/libimagstore/src/store.rs')
-rw-r--r--lib/core/libimagstore/src/store.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/core/libimagstore/src/store.rs b/lib/core/libimagstore/src/store.rs
index 5137b517..52f9e91f 100644
--- a/lib/core/libimagstore/src/store.rs
+++ b/lib/core/libimagstore/src/store.rs
@@ -1287,4 +1287,38 @@ mod store_tests {
}
}
+ #[test]
+ fn test_whether_entry_is_borrowed() {
+ use crate::storeid::StoreId;
+ setup_logging();
+
+ let store = get_store();
+
+ let one = StoreId::new(PathBuf::from("one")).unwrap();
+ let two = StoreId::new(PathBuf::from("two")).unwrap();
+
+ debug!("Creating entries");
+ let _ = store.create(one.clone()).unwrap();
+ let _ = store.create(two.clone()).unwrap();
+
+ assert!(!store.is_borrowed(one.clone()).unwrap());
+ assert!(!store.is_borrowed(two.clone()).unwrap());
+
+ let one_entry = store.get(one.clone()).unwrap().unwrap();
+
+ assert!(store.is_borrowed(one.clone()).unwrap());
+ assert!(!store.is_borrowed(two.clone()).unwrap());
+
+ let two_entry = store.get(two.clone()).unwrap().unwrap();
+
+ assert!(store.is_borrowed(one.clone()).unwrap());
+ assert!(store.is_borrowed(two.clone()).unwrap());
+
+ drop(one_entry);
+ drop(two_entry);
+
+ assert!(!store.is_borrowed(one.clone()).unwrap());
+ assert!(!store.is_borrowed(two.clone()).unwrap());
+ }
+
}