Jelajahi Sumber

Add Unit Test for the Extras directories.
Parameterize the valid extras as well as the null conditions.

dtparr 5 tahun lalu
induk
melakukan
1f33c51977
1 mengubah file dengan 40 tambahan dan 0 penghapusan
  1. 40 0
      tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs

+ 40 - 0
tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs

@@ -45,6 +45,46 @@ namespace Jellyfin.Naming.Tests.Video
             Test("300-behindthescenes.mp4", ExtraType.BehindTheScenes, videoOptions);
         }
 
+	[Fact]
+        public void TestDirectories()
+        {
+            var videoOptions = new NamingOptions();
+
+            (ExtraType Type, string dirName)[] extraDirectoryNameTests =
+            {
+                (ExtraType.BehindTheScenes, "behind the scenes" ),
+                (ExtraType.DeletedScene, "deleted scenes" ),
+                (ExtraType.Interview, "interviews" ),
+                (ExtraType.Scene, "scenes" ),
+                (ExtraType.Sample, "samples" ),
+                (ExtraType.Clip, "shorts" ),
+                (ExtraType.Clip, "featurettes" ),
+                (ExtraType.Unknown, "extras" ),
+            };
+
+            foreach ((ExtraType type, string dirName) in extraDirectoryNameTests)
+            {
+                Test(dirName + "/300.mp4", type, videoOptions);
+                Test("300/" + dirName + "/something.mkv", type, videoOptions);
+                Test("/data/something/Movies/300/" + dirName + "/whoknows.mp4", type, videoOptions);
+            }
+
+            //Test the null condition
+            string[] nonExtraDirectoryNames = 
+            {
+               "gibberish",
+               "not a scene",
+            };
+            foreach (string dirName in nonExtraDirectoryNames)
+            {
+                Test(dirName + "/300.mp4", null, videoOptions);
+                Test("300/" + dirName + "/something.mkv", null, videoOptions);
+                Test("/data/something/Movies/300/" + dirName + "/whoknows.mp4", null, videoOptions);
+            }
+            Test("/data/something/Movies/not a scene/not a scene.mp4", null, videoOptions);
+            Test("/data/something/Movies/The Big Short/The Big Short.mp4", null, videoOptions);
+        }
+
         [Fact]
         public void TestSample()
         {