Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);
    }