aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2021-08-21 17:31:06 -0600
committerCody Robibero <cody@robibe.ro>2021-08-21 17:31:06 -0600
commit50b3d74c953ea80af2cd2a276cf0475c5e907f27 (patch)
tree548ba8dc21a9cbf0a573bd356a2c7ebdf2f198e1
parent468283bfb2cd7120b53e32cea67fd0c055d38812 (diff)
Switch to TheoryData and clean up tests
-rw-r--r--tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs94
1 files changed, 33 insertions, 61 deletions
diff --git a/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs b/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs
index 63d97b3cb..31f33c682 100644
--- a/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs
+++ b/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs
@@ -1,27 +1,45 @@
using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
using System.Linq;
-using System.Reflection;
using Jellyfin.Data.Enums;
using Xunit;
-using Xunit.Sdk;
namespace Jellyfin.Server.Implementations.Tests.TypedBaseItem
{
public class BaseItemKindTests
{
+ public static TheoryData<Type> BaseItemKind_TestData()
+ {
+ var data = new TheoryData<Type>();
+
+ var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (var assembly in loadedAssemblies)
+ {
+ if (IsProjectAssemblyName(assembly.FullName))
+ {
+ var baseItemTypes = assembly.GetTypes()
+ .Where(targetType => targetType.IsClass
+ && !targetType.IsAbstract
+ && targetType.IsSubclassOf(typeof(MediaBrowser.Controller.Entities.BaseItem)));
+ foreach (var baseItemType in baseItemTypes)
+ {
+ data.Add(baseItemType);
+ }
+ }
+ }
+
+ return data;
+ }
+
[Theory]
- [ClassData(typeof(GetBaseItemDescendants))]
- public void EnumParse_GivenValidBaseItemType_ReturnsEnumValue(Type baseItemType)
+ [MemberData(nameof(BaseItemKind_TestData))]
+ public void EnumParse_GivenValidBaseItemType_ReturnsEnumValue(Type baseItemDescendantType)
{
- var enumValue = Enum.Parse<BaseItemKind>(baseItemType.Name);
+ var enumValue = Enum.Parse<BaseItemKind>(baseItemDescendantType.Name);
Assert.True(Enum.IsDefined(typeof(BaseItemKind), enumValue));
}
[Theory]
- [ClassData(typeof(GetBaseItemDescendants))]
+ [MemberData(nameof(BaseItemKind_TestData))]
public void GetBaseItemKind_WhenCalledAfterDefaultCtor_DoesNotThrow(Type baseItemDescendantType)
{
var defaultConstructor = baseItemDescendantType.GetConstructor(Type.EmptyTypes);
@@ -30,62 +48,16 @@ namespace Jellyfin.Server.Implementations.Tests.TypedBaseItem
Assert.Null(exception);
}
- private class GetBaseItemDescendants : IEnumerable<object?[]>
+ private static bool IsProjectAssemblyName(string? name)
{
- private static bool IsProjectAssemblyName(string? name)
+ if (name == null)
{
- if (name == null)
- {
- return false;
- }
-
- return name.StartsWith("Jellyfin", StringComparison.OrdinalIgnoreCase)
- || name.StartsWith("Emby", StringComparison.OrdinalIgnoreCase)
- || name.StartsWith("MediaBrowser", StringComparison.OrdinalIgnoreCase);
- }
-
- public IEnumerator<object?[]> GetEnumerator()
- {
- var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
- foreach (var assembly in loadedAssemblies)
- {
- if (IsProjectAssemblyName(assembly.FullName))
- {
- var baseItemTypes = assembly.GetTypes()
- .Where(targetType => targetType.IsClass
- && !targetType.IsAbstract
- && targetType.IsSubclassOf(typeof(MediaBrowser.Controller.Entities.BaseItem)));
- foreach (var baseItemType in baseItemTypes)
- {
- yield return new object?[] { baseItemType };
- }
- }
- }
-
- var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
- if (path == null)
- {
- throw new NullException("Assembly location is null");
- }
-
- foreach (string dll in Directory.GetFiles(path, "*.dll"))
- {
- var assembly = Assembly.LoadFile(dll);
- if (IsProjectAssemblyName(assembly.FullName))
- {
- var baseItemTypes = assembly.GetTypes()
- .Where(targetType => targetType.IsClass
- && !targetType.IsAbstract
- && targetType.IsSubclassOf(typeof(MediaBrowser.Controller.Entities.BaseItem)));
- foreach (var baseItemType in baseItemTypes)
- {
- yield return new object?[] { baseItemType };
- }
- }
- }
+ return false;
}
- IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
+ return name.StartsWith("Jellyfin", StringComparison.OrdinalIgnoreCase)
+ || name.StartsWith("Emby", StringComparison.OrdinalIgnoreCase)
+ || name.StartsWith("MediaBrowser", StringComparison.OrdinalIgnoreCase);
}
}
}