diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-02-28 11:45:31 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-06-01 13:49:22 +0200 |
commit | 35a8bfdaa60e1bc449648171d7f18b253f206a26 (patch) | |
tree | e40b83805373ed7e5733c97f21b2dd518833f819 | |
parent | 59f575274af2f1247b5c83be3796e833096528cc (diff) |
Add check whether Store::is_borrowed() works
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 79eb5b3e..bccdd2b2 100644 --- a/lib/core/libimagstore/src/store.rs +++ b/lib/core/libimagstore/src/store.rs @@ -1315,4 +1315,38 @@ mod store_tests { assert!(!store.is_borrowed(two).unwrap()); } + #[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()); + } + } |