public void Grouped_NotGrouped(string one, string two, string three)
    {
        var mediaItems = new List <MediaItem>
        {
            NamedEpisode(one, 1, 1, 1),
            NamedEpisode(two, 1, 1, 2),
            NamedEpisode(three, 1, 1, 3)
        };

        List <GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems, false);

        result.Count.Should().Be(2);
        ShouldHaveTwoItems(result, mediaItems[0], mediaItems[1]);
        ShouldHaveOneItem(result, mediaItems[2]);
    }
    public void Mixed_Shows_Chronologically(string one, string two, string three, string four)
    {
        var mediaItems = new List <MediaItem>
        {
            NamedEpisode(one, 1, 1, 1, new DateTime(2020, 1, 1)),
            NamedEpisode(two, 2, 1, 3, new DateTime(2020, 1, 2)),
            NamedEpisode(three, 1, 1, 2, new DateTime(2020, 1, 3)),
            NamedEpisode(four, 1, 1, 5, new DateTime(2020, 1, 4))
        };

        List <GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems, false);

        result.Count.Should().Be(3);
        ShouldHaveTwoItems(result, mediaItems[0], mediaItems[2]);
        ShouldHaveOneItem(result, mediaItems[1]);
        ShouldHaveOneItem(result, mediaItems[3]);
    }
    public void Repeat_Part(string one, string two, string three, string four)
    {
        var mediaItems = new List <MediaItem>
        {
            NamedEpisode(one, 1, 1, 1),
            NamedEpisode(two, 1, 1, 3),
            NamedEpisode(three, 1, 1, 4),
            NamedEpisode(four, 1, 1, 5)
        };

        List <GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems, false);

        result.Count.Should().Be(3);
        ShouldHaveOneItem(result, mediaItems[0]);
        ShouldHaveTwoItems(result, mediaItems[1], mediaItems[2]);
        ShouldHaveOneItem(result, mediaItems[3]);
    }