use whirlwind::*; #[tokio::test] async fn test_shardmap() { let map = ShardMap::new(); map.insert("foo", "bar").await; assert_eq!(map.len().await, 1); assert_eq!(map.contains_key(&"foo").await, true); assert_eq!(map.contains_key(&"bar").await, false); assert_eq!(map.get(&"foo").await.unwrap().value(), &"bar"); assert!(map.get(&"bar").await.is_none()); assert_eq!(map.remove(&"foo").await, Some("bar")); assert_eq!(map.len().await, 0); assert_eq!(map.contains_key(&"foo").await, false); } #[tokio::test] async fn test_shardmap_clone() { let map = ShardMap::new(); map.insert("foo", "bar").await; let map2 = map.clone(); assert_eq!(map2.len().await, 1); assert_eq!(map2.contains_key(&"foo").await, true); assert_eq!(map2.contains_key(&"bar").await, false); assert_eq!(map2.get(&"foo").await.unwrap().value(), &"bar"); assert!(map2.get(&"bar").await.is_none()); assert_eq!(map2.remove(&"foo").await, Some("bar")); assert_eq!(map2.len().await, 0); assert_eq!(map2.contains_key(&"foo").await, false); } #[tokio::test] async fn test_shardmap_shards() { let map = ShardMap::with_shards(4); map.insert("foo", "bar").await; assert_eq!(map.len().await, 1); assert_eq!(map.contains_key(&"foo").await, true); assert_eq!(map.contains_key(&"bar").await, false); assert_eq!(map.get(&"foo").await.unwrap().value(), &"bar"); assert!(map.get(&"bar").await.is_none()); assert_eq!(map.remove(&"foo").await, Some("bar")); assert_eq!(map.len().await, 0); assert_eq!(map.contains_key(&"foo").await, false); } #[tokio::test] async fn test_shardmap_len() { let map = ShardMap::new(); map.insert("foo", "bar").await; assert_eq!(map.len().await, 1); map.insert("foo2", "bar2").await; assert_eq!(map.len().await, 2); map.remove(&"foo").await; assert_eq!(map.len().await, 1); map.remove(&"foo2").await; assert_eq!(map.len().await, 0); } #[tokio::test] async fn test_shardmap_is_empty() { let map = ShardMap::new(); assert_eq!(map.is_empty().await, true); map.insert("foo", "bar").await; assert_eq!(map.is_empty().await, false); map.remove(&"foo").await; assert_eq!(map.is_empty().await, true); }