From 7fa21455b26ca579c8f19c3f918b447e4bb8ebb1 Mon Sep 17 00:00:00 2001 From: Nora Date: Wed, 27 Mar 2019 15:57:24 +0100 Subject: icalvevent: add test for dtstart and dtend --- src/icalwrap/icalvevent.rs | 39 ++++++++++++++++++++++++++++++++++++++- src/khevent.rs | 11 +++++++++++ src/testdata.rs | 10 ++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/icalwrap/icalvevent.rs b/src/icalwrap/icalvevent.rs index 2b48835..b27e003 100644 --- a/src/icalwrap/icalvevent.rs +++ b/src/icalwrap/icalvevent.rs @@ -260,6 +260,44 @@ mod tests { assert_eq!(None, event.get_summary()); } + #[test] + fn test_get_dtstart() { + let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_MULTIDAY, None).unwrap(); + let event = cal.get_principal_event(); + + assert_eq!( + IcalTime::floating_ymd(2007, 06, 28).and_hms(13, 29, 00), + event.get_dtstart().unwrap() + ); + } + + #[test] + fn test_get_dtstart_negative() { + let cal = IcalVCalendar::from_str(testdata::TEST_NO_DTSTART, None).unwrap(); + let event = cal.get_principal_event(); + + assert!(event.get_dtstart().is_none()); + } + + #[test] + fn test_get_dtend() { + let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_MULTIDAY, None).unwrap(); + let event = cal.get_principal_event(); + + assert_eq!( + IcalTime::floating_ymd(2007, 7, 9).and_hms(7, 29, 00), + event.get_dtend().unwrap() + ); + } + + #[test] + fn test_get_dtend_negative() { + let cal = IcalVCalendar::from_str(testdata::TEST_NO_DTSTART, None).unwrap(); + let event = cal.get_principal_event(); + + assert!(event.get_dtend().is_none()); + } + #[test] fn test_get_duration_internal_normal() { let cal = IcalVCalendar::from_str(testdata::TEST_EVENT_MULTIDAY, None).unwrap(); @@ -354,5 +392,4 @@ mod tests { assert_eq!(None, event.get_location()); } - } diff --git a/src/khevent.rs b/src/khevent.rs index d6c6e9b..41ca330 100644 --- a/src/khevent.rs +++ b/src/khevent.rs @@ -265,4 +265,15 @@ mod tests { event.get_duration() ); } + + #[test] + fn test_get_dtstart() { + let event = KhEvent::from_str(testdata::TEST_DTSTART_ONLY_DATE, None).unwrap(); + + assert!(event.is_allday()); + assert_eq!( + Some(IcalDuration::from_seconds(24 * 60 * 60)), + event.get_duration() + ); + } } diff --git a/src/testdata.rs b/src/testdata.rs index 9fc9c7e..0fa9cd6 100644 --- a/src/testdata.rs +++ b/src/testdata.rs @@ -216,6 +216,16 @@ pub static TEST_MULTIPLE_EVENTS: &str = indoc!(" END:VCALENDAR "); +pub static TEST_NO_DTSTART: &str = indoc!(" + BEGIN:VCALENDAR + VERSION:2.0 + PRODID:-//ABC Corporation//NONSGML My Product//EN + BEGIN:VEVENT + UID:uid3 + DTSTAMP:20070423T123432Z + END:VEVENT + END:VCALENDAR +"); pub static TEST_NO_SUMMARY: &str = indoc!(" BEGIN:VCALENDAR -- cgit v1.2.3