diff options
Diffstat (limited to 'tests/Jellyfin.Server.Implementations.Tests/Library')
| -rw-r--r-- | tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs | 46 | ||||
| -rw-r--r-- | tests/Jellyfin.Server.Implementations.Tests/Library/MovieResolverTests.cs | 34 |
2 files changed, 67 insertions, 13 deletions
diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs index de4421320..f5c8cc970 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs +++ b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs @@ -60,7 +60,8 @@ public class FindExtrasTests "/movies/Up/Up.mkv", "/movies/Up/Up - trailer.mkv", "/movies/Up/Up - sample.mkv", - "/movies/Up/Up something else.mkv" + "/movies/Up/Up something else.mkv", + "/movies/Up/Up-extra.mkv" }; var files = paths.Select(p => new FileSystemMetadata @@ -71,10 +72,11 @@ public class FindExtrasTests var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList(); - Assert.Equal(2, extras.Count); - Assert.Equal(ExtraType.Trailer, extras[0].ExtraType); - Assert.Equal(typeof(Trailer), extras[0].GetType()); - Assert.Equal(ExtraType.Sample, extras[1].ExtraType); + Assert.Equal(3, extras.Count); + Assert.Equal(ExtraType.Unknown, extras[0].ExtraType); + Assert.Equal(ExtraType.Trailer, extras[1].ExtraType); + Assert.Equal(typeof(Trailer), extras[1].GetType()); + Assert.Equal(ExtraType.Sample, extras[2].ExtraType); } [Fact] @@ -92,7 +94,8 @@ public class FindExtrasTests "/movies/Up/behind the scenes", "/movies/Up/behind the scenes.mkv", "/movies/Up/Up - sample.mkv", - "/movies/Up/Up something else.mkv" + "/movies/Up/Up something else.mkv", + "/movies/Up/extras" }; _fileSystemMock.Setup(f => f.GetFiles( @@ -140,6 +143,21 @@ public class FindExtrasTests } }).Verifiable(); + _fileSystemMock.Setup(f => f.GetFiles( + "/movies/Up/extras", + It.IsAny<string[]>(), + false, + false)) + .Returns(new List<FileSystemMetadata> + { + new() + { + FullName = "/movies/Up/extras/Honest Trailer.mkv", + Name = "Honest Trailer.mkv", + IsDirectory = false + } + }).Verifiable(); + var files = paths.Select(p => new FileSystemMetadata { FullName = p, @@ -150,17 +168,19 @@ public class FindExtrasTests var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList(); _fileSystemMock.Verify(); - Assert.Equal(6, extras.Count); - Assert.Equal(ExtraType.Trailer, extras[0].ExtraType); - Assert.Equal(typeof(Trailer), extras[0].GetType()); + Assert.Equal(7, extras.Count); + Assert.Equal(ExtraType.Unknown, extras[0].ExtraType); + Assert.Equal(typeof(Video), extras[0].GetType()); Assert.Equal(ExtraType.Trailer, extras[1].ExtraType); Assert.Equal(typeof(Trailer), extras[1].GetType()); - Assert.Equal(ExtraType.BehindTheScenes, extras[2].ExtraType); - Assert.Equal(ExtraType.Sample, extras[3].ExtraType); - Assert.Equal(ExtraType.ThemeSong, extras[4].ExtraType); - Assert.Equal(typeof(Audio), extras[4].GetType()); + Assert.Equal(ExtraType.Trailer, extras[2].ExtraType); + Assert.Equal(typeof(Trailer), extras[2].GetType()); + Assert.Equal(ExtraType.BehindTheScenes, extras[3].ExtraType); + Assert.Equal(ExtraType.Sample, extras[4].ExtraType); Assert.Equal(ExtraType.ThemeSong, extras[5].ExtraType); Assert.Equal(typeof(Audio), extras[5].GetType()); + Assert.Equal(ExtraType.ThemeSong, extras[6].ExtraType); + Assert.Equal(typeof(Audio), extras[6].GetType()); } [Fact] diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/MovieResolverTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/MovieResolverTests.cs new file mode 100644 index 000000000..f2efcddba --- /dev/null +++ b/tests/Jellyfin.Server.Implementations.Tests/Library/MovieResolverTests.cs @@ -0,0 +1,34 @@ +using Emby.Naming.Common; +using Emby.Server.Implementations.Library.Resolvers.Movies; +using MediaBrowser.Controller; +using MediaBrowser.Controller.Drawing; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.IO; +using Moq; +using Xunit; + +namespace Jellyfin.Server.Implementations.Tests.Library; + +public class MovieResolverTests +{ + private static readonly NamingOptions _namingOptions = new(); + + [Fact] + public void Resolve_GivenLocalAlternateVersion_ResolvesToVideo() + { + var movieResolver = new MovieResolver(Mock.Of<IImageProcessor>(), _namingOptions); + var itemResolveArgs = new ItemResolveArgs( + Mock.Of<IServerApplicationPaths>(), + Mock.Of<IDirectoryService>()) + { + Parent = null, + FileInfo = new FileSystemMetadata + { + FullName = "/movies/Black Panther (2018)/Black Panther (2018) - 1080p 3D.mk3d" + } + }; + + Assert.NotNull(movieResolver.Resolve(itemResolveArgs)); + } +} |
