using System.Collections.Generic;
namespace UnityEngine.TestRunner.NUnitExtensions.Runner
{
///
/// A registry for implementations that wrap test commands.
///
public static class TestCommandWrapperRegistry
{
static readonly List s_Wrappers = new List();
static readonly object s_Lock = new object();
///
/// Registers a test command wrapper to be applied during test execution.
///
/// The wrapper to register. Null values are ignored.
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 GetWrappers()
{
lock (s_Lock)
{
return new List(s_Wrappers);
}
}
}
}