Browse Source

Create PremiereDateComparerTests

Create PremiereDateComparerTests to test PremiereDateComparer functionality.
Adam 11 tháng trước cách đây
mục cha
commit
86835dd3c6

+ 45 - 0
tests/Jellyfin.Server.Implementations.Tests/Sorting/PremiereDateComparerTests.cs

@@ -0,0 +1,45 @@
+using System;
+using Emby.Server.Implementations.Sorting;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Movies;
+using Xunit;
+
+namespace Jellyfin.Server.Implementations.Tests.Sorting
+{
+    public class PremiereDateComparerTests
+    {
+        private readonly PremiereDateComparer _cmp = new PremiereDateComparer();
+
+        [Theory]
+        [ClassData(typeof(PremiereDateTestData))]
+        public void PremiereDateCompareTest(BaseItem x, BaseItem y, int expected)
+        {
+            Assert.Equal(expected, _cmp.Compare(x, y));
+            Assert.Equal(-expected, _cmp.Compare(y, x));
+        }
+
+        private sealed class PremiereDateTestData : TheoryData<BaseItem, BaseItem, int>
+        {
+            public PremiereDateTestData()
+            {
+                // Both have premier date
+                Add(
+                    new Movie { PremiereDate = new DateTime(2021, 1, 1) },
+                    new Movie { PremiereDate = new DateTime(2021, 1, 3) },
+                    0);
+
+                // Only x has premiere date
+                Add(
+                    new Movie { PremiereDate = new DateTime(2021, 1, 1) },
+                    new Movie { ProductionYear = 2022 },
+                    1);
+
+                // Only x has premiere date, with same year as y
+                Add(
+                    new Movie { PremiereDate = new DateTime(2021, 3, 1) },
+                    new Movie { ProductionYear = 2021 },
+                    2);
+            }
+        }
+    }
+}