|
@@ -1,4 +1,7 @@
|
|
|
using MediaBrowser.Controller.Entities;
|
|
|
+using MediaBrowser.Controller.Library;
|
|
|
+using MediaBrowser.Model.MediaInfo;
|
|
|
+using Moq;
|
|
|
using Xunit;
|
|
|
|
|
|
namespace Jellyfin.Controller.Tests.Entities;
|
|
@@ -14,4 +17,30 @@ public class BaseItemTests
|
|
|
[InlineData("1test 2", "0000000001test 0000000002")]
|
|
|
public void BaseItem_ModifySortChunks_Valid(string input, string expected)
|
|
|
=> Assert.Equal(expected, BaseItem.ModifySortChunks(input));
|
|
|
+
|
|
|
+ [Theory]
|
|
|
+ [InlineData("/Movies/Ted/Ted.mp4", "/Movies/Ted/Ted - Unrated Edition.mp4", "Ted", "Unrated Edition")]
|
|
|
+ [InlineData("/Movies/Deadpool 2 (2018)/Deadpool 2 (2018).mkv", "/Movies/Deadpool 2 (2018)/Deadpool 2 (2018) - Super Duper Cut.mkv", "Deadpool 2 (2018)", "Super Duper Cut")]
|
|
|
+ public void GetMediaSourceName_Valid(string primaryPath, string altPath, string name, string altName)
|
|
|
+ {
|
|
|
+ var mediaSourceManager = new Mock<IMediaSourceManager>();
|
|
|
+ mediaSourceManager.Setup(x => x.GetPathProtocol(It.IsAny<string>()))
|
|
|
+ .Returns((string x) => MediaProtocol.File);
|
|
|
+ BaseItem.MediaSourceManager = mediaSourceManager.Object;
|
|
|
+
|
|
|
+ var video = new Video()
|
|
|
+ {
|
|
|
+ Path = primaryPath
|
|
|
+ };
|
|
|
+
|
|
|
+ var videoAlt = new Video()
|
|
|
+ {
|
|
|
+ Path = altPath,
|
|
|
+ };
|
|
|
+
|
|
|
+ video.LocalAlternateVersions = [videoAlt.Path];
|
|
|
+
|
|
|
+ Assert.Equal(name, video.GetMediaSourceName(video));
|
|
|
+ Assert.Equal(altName, video.GetMediaSourceName(videoAlt));
|
|
|
+ }
|
|
|
}
|