Files
2026-11-01 23:39:55 +02:00

57 lines
1.5 KiB
C#

using System.Collections.Generic;
namespace UnityEngine.TestRunner.NUnitExtensions.Runner
{
/// <summary>
/// A registry for <see cref="ITestCommandWrapper"/> implementations that wrap test commands.
/// </summary>
public static class TestCommandWrapperRegistry
{
static readonly List<ITestCommandWrapper> s_Wrappers = new List<ITestCommandWrapper>();
static readonly object s_Lock = new object();
/// <summary>
/// Registers a test command wrapper to be applied during test execution.
/// </summary>
/// <param name="wrapper">The wrapper to register. Null values are ignored.</param>
public static void Register(ITestCommandWrapper wrapper)
{
if (wrapper == null)
return;
lock (s_Lock)
{
if (!s_Wrappers.Contains(wrapper))
s_Wrappers.Add(wrapper);
}
}
internal static void Unregister(ITestCommandWrapper wrapper)
{
if (wrapper == null)
return;
lock (s_Lock)
{
s_Wrappers.Remove(wrapper);
}
}
internal static void Clear()
{
lock (s_Lock)
{
s_Wrappers.Clear();
}
}
internal static IEnumerable<ITestCommandWrapper> GetWrappers()
{
lock (s_Lock)
{
return new List<ITestCommandWrapper>(s_Wrappers);
}
}
}
}