Ver código fonte

Changed testing

BaronGreenback 4 anos atrás
pai
commit
a99caa0daa

+ 4 - 11
Emby.Dlna/DlnaManager.cs

@@ -156,7 +156,7 @@ namespace Emby.Dlna
         /// <param name="deviceInfo">The <see cref="DeviceIdentification"/> of the device.</param>
         /// <param name="profileInfo">The <see cref="DeviceIdentification"/> of the profile.</param>
         /// <returns><b>True</b> if they match.</returns>
-        public static bool IsMatch(DeviceIdentification deviceInfo, DeviceIdentification profileInfo)
+        public bool IsMatch(DeviceIdentification deviceInfo, DeviceIdentification profileInfo)
         {
             return IsRegexOrSubstringMatch(deviceInfo.FriendlyName, profileInfo.FriendlyName)
                && IsRegexOrSubstringMatch(deviceInfo.Manufacturer, profileInfo.Manufacturer)
@@ -168,7 +168,7 @@ namespace Emby.Dlna
                && IsRegexOrSubstringMatch(deviceInfo.SerialNumber, profileInfo.SerialNumber);
         }
 
-        public static bool IsRegexOrSubstringMatch(string input, string pattern)
+        private bool IsRegexOrSubstringMatch(string input, string pattern)
         {
             if (string.IsNullOrEmpty(pattern))
             {
@@ -182,15 +182,8 @@ namespace Emby.Dlna
                 return false;
             }
 
-            try
-            {
-                return input.Equals(pattern, StringComparison.OrdinalIgnoreCase)
-                    || Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
-            }
-            catch (ArgumentException ex)
-            {
-                throw new ArgumentException("Error evaluating regex pattern " + pattern, ex);
-            }
+            return input.Equals(pattern, StringComparison.OrdinalIgnoreCase)
+                || Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
         }
 
         public DeviceProfile GetProfile(IHeaderDictionary headers)

+ 1 - 0
tests/Jellyfin.Dlna.Tests/Jellyfin.Dlna.Tests.csproj

@@ -9,6 +9,7 @@
 
   <ItemGroup>
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
+    <PackageReference Include="Moq" Version="4.16.1" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
     <PackageReference Include="coverlet.collector" Version="3.0.3" />

+ 20 - 9
tests/Jellyfin.Dlna.Tests/ProfileTester.cs

@@ -1,18 +1,29 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
 using Emby.Dlna;
 using Emby.Dlna.PlayTo;
+using MediaBrowser.Common.Configuration;
+using MediaBrowser.Controller;
 using MediaBrowser.Model.Dlna;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Serialization;
+using Microsoft.Extensions.Logging;
+using Moq;
 using Xunit;
 
 namespace Jellyfin.Dlna.Tests
 {
     public class ProfileTester
     {
+        private DlnaManager GetManager()
+        {
+            var xmlSerializer = new Mock<IXmlSerializer>();
+            var fileSystem = new Mock<IFileSystem>();
+            var appPaths = new Mock<IApplicationPaths>();
+            var loggerFactory = new Mock<ILoggerFactory>();
+            var appHost = new Mock<IServerApplicationHost>();
+
+            return new DlnaManager(xmlSerializer.Object, fileSystem.Object, appPaths.Object, loggerFactory.Object, appHost.Object);
+        }
+
         [Fact]
         public void Test_Profile_Matches()
         {
@@ -46,7 +57,7 @@ namespace Jellyfin.Dlna.Tests
                 }
             };
 
-            Assert.True(DlnaManager.IsMatch(device.ToDeviceIdentification(), profile.Identification));
+            Assert.True(GetManager().IsMatch(device.ToDeviceIdentification(), profile.Identification));
 
             var profile2 = new DeviceProfile()
             {
@@ -58,7 +69,7 @@ namespace Jellyfin.Dlna.Tests
                 }
             };
 
-            Assert.True(DlnaManager.IsMatch(device.ToDeviceIdentification(), profile2.Identification));
+            Assert.True(GetManager().IsMatch(device.ToDeviceIdentification(), profile2.Identification));
         }
 
         [Fact]
@@ -90,7 +101,7 @@ namespace Jellyfin.Dlna.Tests
                 }
             };
 
-            Assert.False(DlnaManager.IsMatch(device.ToDeviceIdentification(), profile.Identification));
+            Assert.False(GetManager().IsMatch(device.ToDeviceIdentification(), profile.Identification));
         }
     }
 }