瀏覽代碼

Add regression test for #6560

Bond_009 3 年之前
父節點
當前提交
055e04338e

二進制
tests/Jellyfin.Server.Implementations.Tests/Test Data/Updates/empty.zip


+ 32 - 1
tests/Jellyfin.Server.Implementations.Tests/Updates/InstallationManagerTests.cs

@@ -6,7 +6,9 @@ using System.Threading;
 using System.Threading.Tasks;
 using AutoFixture;
 using AutoFixture.AutoMoq;
+using Emby.Server.Implementations.Archiving;
 using Emby.Server.Implementations.Updates;
+using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Updates;
 using Moq;
 using Moq.Protected;
@@ -40,7 +42,9 @@ namespace Jellyfin.Server.Implementations.Tests.Updates
             _fixture.Customize(new AutoMoqCustomization
             {
                 ConfigureMembers = true
-            }).Inject(http);
+            });
+            _fixture.Inject(http);
+            _fixture.Inject<IZipClient>(new ZipClient());
             _installationManager = _fixture.Create<InstallationManager>();
         }
 
@@ -78,5 +82,32 @@ namespace Jellyfin.Server.Implementations.Tests.Updates
             packages = _installationManager.FilterPackages(packages, id: new Guid("a4df60c5-6ab4-412a-8f79-2cab93fb2bc5")).ToArray();
             Assert.Single(packages);
         }
+
+        [Fact]
+        public async Task InstallPackage_InvalidChecksum_ThrowsInvalidDataException()
+        {
+            var packageInfo = new InstallationInfo()
+            {
+                Name = "Test",
+                SourceUrl = "https://repo.jellyfin.org/releases/plugin/empty/empty.zip",
+                Checksum = "InvalidChecksum"
+            };
+
+            await Assert.ThrowsAsync<InvalidDataException>(() => _installationManager.InstallPackage(packageInfo, CancellationToken.None)).ConfigureAwait(false);
+        }
+
+        [Fact]
+        public async Task InstallPackage_Valid_Success()
+        {
+            var packageInfo = new InstallationInfo()
+            {
+                Name = "Test",
+                SourceUrl = "https://repo.jellyfin.org/releases/plugin/empty/empty.zip",
+                Checksum = "11b5b2f1a9ebc4f66d6ef19018543361"
+            };
+
+            var ex = await Record.ExceptionAsync(() => _installationManager.InstallPackage(packageInfo, CancellationToken.None)).ConfigureAwait(false);
+            Assert.Null(ex);
+        }
     }
 }