diff options
author | Nora <nora.widdecke@tu-bs.de> | 2019-03-27 15:57:24 +0100 |
---|---|---|
committer | Nora <nora.widdecke@tu-bs.de> | 2019-03-27 15:57:24 +0100 |
commit | 7fa21455b26ca579c8f19c3f918b447e4bb8ebb1 (patch) | |
tree | 20f8abb252040755a9104ca6074bc2a882d19d5e | |
parent | cb0440387b5ef3ef3c2c65e72e60c425bab667ac (diff) |
icalvevent: add test for dtstart and dtend
-rw-r--r-- | src/icalwrap/icalvevent.rs | 39 | ||||
-rw-r--r-- | src/khevent.rs | 11 | ||||
-rw-r--r-- | src/testdata.rs | 10 |
3 files changed, 59 insertions, 1 deletions
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 @@ -261,6 +261,44 @@ mod tests { } #[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(); let event = cal.get_principal_event(); @@ -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 |