use chrono::Utc;
use funniversaries::entities::anniversary::Anniversary;
#[test]
#[should_panic]
fn should_return_empty_list_when_no_date() {
let date = "";
funniversaries::find_anniversaries_future(date);
}
#[test]
#[should_panic]
fn should_return_empty_list_when_incorrect_date() {
let date = "2020:01:02T06:05:04.333Z";
funniversaries::find_anniversaries_future(date);
}
#[test]
fn should_return_list_when_recent_date() {
let date = "2020-01-02T06:05:04.333Z";
let anniversaries = funniversaries::find_anniversaries_future(date);
assert_eq!(anniversaries.len() > 0, true);
}
#[test]
fn should_return_list_when_old_date() {
let date = "1605-11-05T23:59:58.666Z";
let anniversaries = funniversaries::find_anniversaries_future(date);
let count_anniversaries = anniversaries.len();
assert_eq!(count_anniversaries > 0, true);
let filtered: Vec<Anniversary> = anniversaries
.into_iter()
.filter(|a| a.date.gt(&Utc::now()))
.collect();
assert!(count_anniversaries == filtered.len())
}
#[test]
fn should_return_list_when_future_date() {
let date = "2222-11-22T11:22:11.222Z";
let anniversaries = funniversaries::find_anniversaries_future(date);
assert_eq!(anniversaries.len() > 0, true);
}