NoItemConstraint
NoItemConstraint applies another constraint to each
item in a collection, failing if any of them succeeds.
using System;
using System.Collections;
namespace NUnit.Framework.Constraints
{
public class NoItemConstraint : PrefixConstraint
{
public override string DisplayName => "None";
public NoItemConstraint(IConstraint itemConstraint)
: base(itemConstraint)
{
base.DescriptionPrefix = "no 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 (base.BaseConstraint.ApplyTo(item).IsSuccess)
return new ConstraintResult(this, actual, ConstraintStatus.Failure);
}
return new ConstraintResult(this, actual, ConstraintStatus.Success);
}
}
}