diff --git a/tests/feed_validation.rs b/tests/feed_validation.rs index 3c69a32..f807e2f 100644 --- a/tests/feed_validation.rs +++ b/tests/feed_validation.rs @@ -1,3 +1,4 @@ +use std::collections::HashMap; use std::collections::HashSet; use std::fs; @@ -29,3 +30,28 @@ fn test_if_feeds_lists_have_overlapping_feed() { let set2: HashSet<_> = read_feed("featured_feeds.txt").into_iter().collect(); assert!(set1.is_disjoint(&set2)); } + +#[test] +fn test_if_duplicates_in_feeds_list() { + let mut urls = read_feed("feeds.txt"); + + urls.sort(); + + let duplicates = urls + .into_iter() + .fold(HashMap::new(), |mut map, x| { + *map.entry(x).or_insert(0) += 1; + map + }) + .into_iter() + .filter(|(_, count)| *count > 1) + .map(|(item, _)| item) + .collect::>(); + + if !duplicates.is_empty() { + for dupe in duplicates { + println!("{}", dupe) + } + panic!("Duplicate entries found!") + } +}