diff options
Diffstat (limited to 'tests/task_join_map.rs')
-rw-r--r-- | tests/task_join_map.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/task_join_map.rs b/tests/task_join_map.rs index cef08b2..1ab5f9b 100644 --- a/tests/task_join_map.rs +++ b/tests/task_join_map.rs @@ -109,6 +109,30 @@ async fn alternating() { } } +#[tokio::test] +async fn test_keys() { + use std::collections::HashSet; + + let mut map = JoinMap::new(); + + assert_eq!(map.len(), 0); + map.spawn(1, async {}); + assert_eq!(map.len(), 1); + map.spawn(2, async {}); + assert_eq!(map.len(), 2); + + let keys = map.keys().collect::<HashSet<&u32>>(); + assert!(keys.contains(&1)); + assert!(keys.contains(&2)); + + let _ = map.join_next().await.unwrap(); + let _ = map.join_next().await.unwrap(); + + assert_eq!(map.len(), 0); + let keys = map.keys().collect::<HashSet<&u32>>(); + assert!(keys.is_empty()); +} + #[tokio::test(start_paused = true)] async fn abort_by_key() { let mut map = JoinMap::new(); |