mirror of https://github.com/ErsatzTV/ErsatzTV.git
2 changed files with 112 additions and 0 deletions
@ -0,0 +1,100 @@
@@ -0,0 +1,100 @@
|
||||
using System.Collections.Generic; |
||||
using ErsatzTV.Core.Domain; |
||||
using ErsatzTV.Core.Scheduling; |
||||
using FluentAssertions; |
||||
using NUnit.Framework; |
||||
|
||||
namespace ErsatzTV.Core.Tests.Scheduling |
||||
{ |
||||
public class MultiPartEpisodeGrouperTests |
||||
{ |
||||
[Test] |
||||
public void NotGrouped_Grouped_NotGrouped() |
||||
{ |
||||
var mediaItems = new List<MediaItem> |
||||
{ |
||||
NamedEpisode("Episode 1"), |
||||
NamedEpisode("Episode 2 (1)"), |
||||
NamedEpisode("Episode 3 (2)"), |
||||
NamedEpisode("Episode 4"), |
||||
}; |
||||
|
||||
List<GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems); |
||||
|
||||
result.Count.Should().Be(3); |
||||
result[0].First.Should().Be(mediaItems[0]); |
||||
result[1].First.Should().Be(mediaItems[1]); |
||||
result[1].Additional[0].Should().Be(mediaItems[2]); |
||||
result[2].First.Should().Be(mediaItems[3]); |
||||
} |
||||
|
||||
[Test] |
||||
public void Grouped_NotGrouped() |
||||
{ |
||||
var mediaItems = new List<MediaItem> |
||||
{ |
||||
NamedEpisode("Episode 1 (1)"), |
||||
NamedEpisode("Episode 2 (2)"), |
||||
NamedEpisode("Episode 3"), |
||||
}; |
||||
|
||||
List<GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems); |
||||
|
||||
result.Count.Should().Be(2); |
||||
result[0].First.Should().Be(mediaItems[0]); |
||||
result[0].Additional[0].Should().Be(mediaItems[1]); |
||||
result[1].First.Should().Be(mediaItems[2]); |
||||
} |
||||
|
||||
[Test] |
||||
public void Grouped_NotGrouped_Grouped() |
||||
{ |
||||
var mediaItems = new List<MediaItem> |
||||
{ |
||||
NamedEpisode("Episode 1 (1)"), |
||||
NamedEpisode("Episode 2 (2)"), |
||||
NamedEpisode("Episode 3"), |
||||
NamedEpisode("Episode 4 (1)"), |
||||
NamedEpisode("Episode 5 (2)"), |
||||
}; |
||||
|
||||
List<GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems); |
||||
|
||||
result.Count.Should().Be(3); |
||||
result[0].First.Should().Be(mediaItems[0]); |
||||
result[0].Additional[0].Should().Be(mediaItems[1]); |
||||
result[1].First.Should().Be(mediaItems[2]); |
||||
result[2].First.Should().Be(mediaItems[3]); |
||||
result[2].Additional[0].Should().Be(mediaItems[4]); |
||||
} |
||||
|
||||
[Test] |
||||
public void Grouped_Grouped() |
||||
{ |
||||
var mediaItems = new List<MediaItem> |
||||
{ |
||||
NamedEpisode("Episode 1 (1)"), |
||||
NamedEpisode("Episode 2 (2)"), |
||||
NamedEpisode("Episode 3 (1)"), |
||||
NamedEpisode("Episode 4 (2)"), |
||||
}; |
||||
|
||||
List<GroupedMediaItem> result = MultiPartEpisodeGrouper.GroupMediaItems(mediaItems); |
||||
|
||||
result.Count.Should().Be(2); |
||||
result[0].First.Should().Be(mediaItems[0]); |
||||
result[0].Additional[0].Should().Be(mediaItems[1]); |
||||
result[1].First.Should().Be(mediaItems[2]); |
||||
result[1].Additional[0].Should().Be(mediaItems[3]); |
||||
} |
||||
|
||||
private static Episode NamedEpisode(string title) => |
||||
new() |
||||
{ |
||||
EpisodeMetadata = new List<EpisodeMetadata> |
||||
{ |
||||
new() { Title = title } |
||||
} |
||||
}; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue