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