diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-02-21 17:46:13 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-02-21 17:46:13 +0100 |
commit | fdea85c0148d092c63e1d113dcc8280fd23f51d6 (patch) | |
tree | e99b1da65d639a4678153733593115c16713d719 | |
parent | 44a22a225e3a3d14176189e42e3715f477804e57 (diff) |
Add test whether Store::is_borrowed() works as expected
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-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()); + } + } |