Example #1
0
    public void Without_Tzid_Uses_DefaultTimeZone()
    {
        // Arrange
        var calendar = new CalendarModel(
            Substitute.For <IImmutableList <EventModel> >(),
            Rnd.DateTime
            );

        // Act
        var result = new JsonCalendar(calendar);

        // Assert
        Assert.Equal(CalendarBase.DefaultTimezone, result.Timezone);
    }
Example #2
0
    public void With_Tzid_Sets_Timezone()
    {
        // Arrange
        var tzid     = Rnd.Str;
        var calendar = new CalendarModel(
            Substitute.For <IImmutableList <EventModel> >(),
            Rnd.DateTime
            );

        // Act
        var result = new JsonCalendar(calendar, tzid);

        // Assert
        Assert.Equal(tzid, result.Timezone);
    }
Example #3
0
    public void Sets_LastModified_Using_Calendar_LastModified()
    {
        // Arrange
        var lastModified = Rnd.DateTime;
        var calendar     = new CalendarModel(
            Substitute.For <IImmutableList <EventModel> >(),
            lastModified
            );

        // Act
        var result = new JsonCalendar(calendar);

        // Assert
        Assert.Equal(lastModified, result.LastModified);
    }
Example #4
0
    public void Returns_Json()
    {
        // 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 calendar     = new CalendarModel(events, lastModified);
        var tzid         = Rnd.Str;
        var jsonCalendar = new JsonCalendar(calendar, tzid);

        var expected =
            "{" +
            "\"calendar\":{" +
            "\"events\":{" +
            $"\"{lastModified:yyyyMMdd\\THHmmss}-000000\":{{" +
            $"\"start\":\"{e0.Start:s}\"," +
            $"\"end\":\"{e0.End:s}\"," +
            $"\"isAllDay\":{JsonF.Bool(e0.IsAllDay)}," +
            $"\"summary\":\"{e0.Summary}\"," +
            $"\"description\":\"{e0.Description}\"," +
            $"\"location\":\"{e0.Location}\"," +
            $"\"free\":{JsonF.Bool(e0.Free)}" +
            "}," +
            $"\"{lastModified:yyyyMMdd\\THHmmss}-000001\":{{" +
            $"\"start\":\"{e1.Start:s}\"," +
            $"\"end\":\"{e1.End:s}\"," +
            $"\"isAllDay\":{JsonF.Bool(e1.IsAllDay)}," +
            $"\"summary\":\"{e1.Summary}\"," +
            $"\"description\":\"{e1.Description}\"," +
            $"\"location\":\"{e1.Location}\"," +
            $"\"free\":{JsonF.Bool(e1.Free)}" +
            "}" +
            "}," +
            $"\"lastModified\":\"{lastModified:s}\"," +
            $"\"timezone\":\"{tzid}\"" +
            "}" +
            "}";

        // Act
        var result = jsonCalendar.ToString();

        // Assert
        Assert.Equal(expected, result);
    }
Example #5
0
    public void Adds_Events_With_Incrementing_Uid()
    {
        // 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, false);
        var e2       = new EventModel(Rnd.DateTime, Rnd.DateTime, false, Rnd.Str, Rnd.Str, Rnd.Str, false);
        var events   = ImmutableList.Create(e0, e1, e2);
        var calendar = new CalendarModel(events, Rnd.DateTime);

        // Act
        var result = new JsonCalendar(calendar);

        // Assert
        Assert.Collection(result.Events,
                          x =>
        {
            Assert.Equal('0', x.Key[^ 1]);
            Assert.Equal(e0, x.Value);
        },