Skip to content

Commit 305dd51

Browse files
committed
Add unit test for try_get_or_insert()
1 parent bb44cf9 commit 305dd51

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/lib.rs

+11
Original file line numberDiff line numberDiff line change
@@ -1447,6 +1447,17 @@ mod tests {
14471447
assert_eq!(cache.get_or_insert("lemon", || "red"), &"orange");
14481448
}
14491449

1450+
#[test]
1451+
fn test_try_get_or_insert() {
1452+
let mut cache = LruCache::new(NonZeroUsize::new(2).unwrap());
1453+
1454+
assert_eq!(cache.try_get_or_insert::<_, &str>("apple", || Ok("red")), Ok(&"red"));
1455+
assert_eq!(cache.try_get_or_insert::<_, &str>("apple", || Err("failed")), Ok(&"red"));
1456+
assert_eq!(cache.try_get_or_insert::<_, &str>("banana", || Ok("orange")), Ok(&"orange"));
1457+
assert_eq!(cache.try_get_or_insert::<_, &str>("lemon", || Err("failed")), Err("failed"));
1458+
assert_eq!(cache.try_get_or_insert::<_, &str>("banana", || Err("failed")), Ok(&"orange"));
1459+
}
1460+
14501461
#[test]
14511462
fn test_put_and_get_or_insert_mut() {
14521463
let mut cache = LruCache::new(NonZeroUsize::new(2).unwrap());

0 commit comments

Comments
 (0)