diff options
-rw-r--r-- | lib/core/libimagstore/src/store.rs | 34 |
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()); + } + } |