Changed testing

This commit is contained in:
BaronGreenback 2021-04-20 18:04:16 +01:00
parent 092c610fbf
commit a99caa0daa
3 changed files with 25 additions and 20 deletions

View File

@ -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)

View File

@ -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" />

View File

@ -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));
}
}
}