D.R. D.R. - 3 months ago 9
C# Question

Assert "at least one item in the result collection matches predicate"

I want to assert that at least one item of a collection matches a given predicate with NUnit. I already asserted that the number of items is greater than 0, so it suffices to mimic the behavior of LINQ's

Any()
method.

I'm looking for something alike:

Assert.That(resultEnumerable, Is.Any.Matching(x => x.Property == "x"));


Or at least for:

Assert.That(resultEnumerable.Select(x => x.Property), Is.Any.EqualTo("x"));


Unfortunately, there seems to be only a
Is.All
constraint and no equivalent
Is.Any
- what am I missing?

Note: I don't want the much less readable:

Assert.That(resultEnumerable.Any(x => x.Property == "x"), Is.True);

Answer

How about one of these?

Assert.That (resultEnumerable, Has.Some.Property ("Property").EqualTo ("x"));
Assert.That (resultEnumerable, Has.Some.Matches<X> (x => x.Property == "x"));
Comments