SomeItemsConstraint
SomeItemsConstraint applies another constraint to each
item in a collection, succeeding if any of them succeeds.
using System;
using System.Collections;
namespace NUnit.Framework.Constraints
{
public class SomeItemsConstraint : PrefixConstraint
{
public SomeItemsConstraint(IConstraint itemConstraint)
: base(itemConstraint)
{
base.DisplayName = "Some";
descriptionPrefix = "some item";
}
public override ConstraintResult ApplyTo<TActual>(TActual actual)
{
if (!(((object)actual) is IEnumerable))
throw new ArgumentException("The actual value must be an IEnumerable", "actual");
foreach (object item in (IEnumerable)(object)actual) {
if (baseConstraint.ApplyTo(item).IsSuccess)
return new ConstraintResult(this, actual, ConstraintStatus.Success);
}
return new ConstraintResult(this, actual, ConstraintStatus.Failure);
}
}
}