summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-02-21 17:46:13 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-02-21 22:01:05 +0100
commit4edf5e9e413e5812decdebf5120182320623d4fe (patch)
treee7d004c5c0f39c3c9d5a26d332924b618be1312f
parent7d971416d9a41da4b39a1291bb286fd5c81c2826 (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.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..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());
+ }
+
}