<PackageReference Include="NUnit" Version="4.3.0" />

ParameterDataProvider

The ParameterDataProvider class implements IParameterDataProvider and hosts one or more individual providers.
using NUnit.Framework.Interfaces; using System; using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace NUnit.Framework.Internal.Builders { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public class ParameterDataProvider : IParameterDataProvider { private readonly List<IParameterDataProvider> _providers = new List<IParameterDataProvider>(); public ParameterDataProvider(params IParameterDataProvider[] providers) { _providers.AddRange(providers); } public bool HasDataFor(IParameterInfo parameter) { foreach (IParameterDataProvider provider in _providers) { if (provider.HasDataFor(parameter)) return true; } return false; } public IEnumerable GetDataFor(IParameterInfo parameter) { List<IParameterDataProvider>.Enumerator enumerator = _providers.GetEnumerator(); try { while (enumerator.MoveNext()) { IParameterDataProvider current = enumerator.Current; foreach (object item in current.GetDataFor(parameter)) { yield return item; } } } finally { ((IDisposable)enumerator).Dispose(); } enumerator = default(List<IParameterDataProvider>.Enumerator); } } }