diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-02-21 17:46:13 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-02-21 22:01:05 +0100 |
commit | 4edf5e9e413e5812decdebf5120182320623d4fe (patch) | |
tree | e7d004c5c0f39c3c9d5a26d332924b618be1312f | |
parent | 7d971416d9a41da4b39a1291bb286fd5c81c2826 (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..e5748121 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).unwrap()); + assert!(!store.is_borrowed(two).unwrap()); + } + } |