public void Returns_Correct_AllDay_Event_Definition() { // Arrange var lastModified = Rnd.DateTime; var tzid = Rnd.Str; var uid = Rnd.Str; var e = new EventModel(Rnd.DateTime, Rnd.DateTime, true, Rnd.Str, Rnd.Str, Rnd.Str, true); var expected = new StringBuilder() .AppendLine("BEGIN:VEVENT") .AppendLine($"UID:{uid}") .AppendLine($"CREATED:{VCalendar.Format(lastModified)}") .AppendLine($"LAST-MODIFIED:{VCalendar.Format(lastModified)}") .AppendLine($"DTSTAMP:{VCalendar.Format(lastModified)}") .AppendLine($"SUMMARY:{e.Summary}") .AppendLine($"DESCRIPTION:{e.Description}") .AppendLine($"LOCATION:{e.Location}") .AppendLine($"DTSTART;TZID={tzid};VALUE=DATE:{VCalendar.Format(e.Start, false)}") .AppendLine("TRANSP:TRANSPARENT") .AppendLine("END:VEVENT") .ToString(); // Act var result = VCalendar.GetEvent(lastModified, tzid, uid, e); // Assert Assert.Equal(expected, result); }
public void Returns_Date_With_Time() { // Arrange var dt = Rnd.DateTime; var expected = dt.ToString(@"yyyyMMdd\THHmmss"); // Act var result = VCalendar.Format(dt); // Assert Assert.Equal(expected, result); }
public void Returns_Correct_VCalendar() { // Arrange var e0 = new EventModel(Rnd.DateTime, Rnd.DateTime, false, Rnd.Str, Rnd.Str, Rnd.Str, false); var e1 = new EventModel(Rnd.DateTime, Rnd.DateTime, false, Rnd.Str, Rnd.Str, Rnd.Str, true); var events = ImmutableList.Create(e0, e1); var lastModified = Rnd.DateTime; var lastModifiedStr = VCalendar.Format(lastModified); var calendar = new CalendarModel(events, lastModified); var tzid = Rnd.Str; var domain = Rnd.Str; var vcal = new VCalendar(calendar, tzid); var expected = new StringBuilder() .AppendLine("BEGIN:VCALENDAR") .AppendLine("VERSION:2.0") .AppendLine("PRODID:-//bfren//NONSGML Jeebs.Calendar//EN") .AppendLine("CALSCALE:GREGORIAN") .AppendLine("X-PUBLISHED-TTL:PT1H") .AppendLine("BEGIN:VTIMEZONE") .AppendLine("TZID:Europe/London") .AppendLine("BEGIN:STANDARD") .AppendLine("TZNAME:GMT") .AppendLine("DTSTART:19710101T020000") .AppendLine("TZOFFSETFROM:+0100") .AppendLine("TZOFFSETTO:+0000") .AppendLine("RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU") .AppendLine("END:STANDARD") .AppendLine("BEGIN:DAYLIGHT") .AppendLine("TZNAME:BST") .AppendLine("DTSTART:19710101T010000") .AppendLine("TZOFFSETFROM:+0000") .AppendLine("TZOFFSETTO:+0100") .AppendLine("RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU") .AppendLine("END:DAYLIGHT") .AppendLine("END:VTIMEZONE") .AppendLine("BEGIN:VEVENT") .AppendLine($"UID:{lastModifiedStr}-000000@{domain}") .AppendLine($"CREATED:{lastModifiedStr}") .AppendLine($"LAST-MODIFIED:{lastModifiedStr}") .AppendLine($"DTSTAMP:{lastModifiedStr}") .AppendLine($"SUMMARY:{e0.Summary}") .AppendLine($"DESCRIPTION:{e0.Description}") .AppendLine($"LOCATION:{e0.Location}") .AppendLine($"DTSTART;TZID={tzid}:{VCalendar.Format(e0.Start)}") .AppendLine($"DTEND;TZID={tzid}:{VCalendar.Format(e0.End)}") .AppendLine("END:VEVENT") .AppendLine("BEGIN:VEVENT") .AppendLine($"UID:{lastModifiedStr}-000001@{domain}") .AppendLine($"CREATED:{lastModifiedStr}") .AppendLine($"LAST-MODIFIED:{lastModifiedStr}") .AppendLine($"DTSTAMP:{lastModifiedStr}") .AppendLine($"SUMMARY:{e1.Summary}") .AppendLine($"DESCRIPTION:{e1.Description}") .AppendLine($"LOCATION:{e1.Location}") .AppendLine($"DTSTART;TZID={tzid}:{VCalendar.Format(e1.Start)}") .AppendLine($"DTEND;TZID={tzid}:{VCalendar.Format(e1.End)}") .AppendLine("TRANSP:TRANSPARENT") .AppendLine("END:VEVENT") .AppendLine("END:VCALENDAR") .ToString(); // Act var result = vcal.ToString(domain); // Assert Assert.Equal(expected, result); }