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

SomeItemsConstraint

SomeItemsConstraint applies another constraint to each item in a collection, succeeding if any of them succeeds.
using NUnit.Framework.Internal; using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints { [NullableContext(1)] [Nullable(0)] public class SomeItemsConstraint : PrefixConstraint { [Nullable(2)] private readonly EqualConstraint _equalConstraint; public override string DisplayName => "Some"; public SomeItemsConstraint(IConstraint itemConstraint) : base(itemConstraint, "some item") { _equalConstraint = (itemConstraint as EqualConstraint); } public override ConstraintResult ApplyTo<[Nullable(2)] TActual>(TActual actual) { IEnumerable enumerable = ConstraintUtils.RequireActual<IEnumerable>(actual, "actual", false); foreach (object item in enumerable) { if (base.BaseConstraint.ApplyTo(item).IsSuccess) return new ConstraintResult(this, actual, ConstraintStatus.Success); } return new ConstraintResult(this, actual, ConstraintStatus.Failure); } public SomeItemsConstraint Using<[Nullable(2)] TActualCollectionElement, [Nullable(2)] TExpected>(Func<TActualCollectionElement, TExpected, bool> comparison) { CheckPrecondition("comparison"); _equalConstraint.Using(comparison); return this; } public SomeItemsConstraint Using(IComparer comparer) { CheckPrecondition("comparer"); _equalConstraint.Using(comparer); return this; } public SomeItemsConstraint Using<[Nullable(2)] T>(IComparer<T> comparer) { CheckPrecondition("comparer"); _equalConstraint.Using(comparer); return this; } public SomeItemsConstraint Using<[Nullable(2)] T>(Comparison<T> comparer) { CheckPrecondition("comparer"); _equalConstraint.Using(comparer); return this; } public SomeItemsConstraint Using(IEqualityComparer comparer) { CheckPrecondition("comparer"); _equalConstraint.Using(comparer); return this; } public SomeItemsConstraint Using<[Nullable(2)] T>(IEqualityComparer<T> comparer) { CheckPrecondition("comparer"); _equalConstraint.Using(comparer); return this; } public SomeItemsConstraint UsingPropertiesComparer() { CheckPrecondition("UsingPropertiesComparer"); _equalConstraint.UsingPropertiesComparer(); return this; } [MemberNotNull("_equalConstraint")] private void CheckPrecondition(string argument) { if (_equalConstraint == null) { string message = "Using may only be used with constraints that check the equality of the items"; throw new ArgumentException(message, argument); } } } }