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);
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"));
I found:
Assert.That (resultEnumerable.Select (x => x.Property), Has.Some.EqualTo ("x"));
Would still prefer a solution where I do not need the Select()
anymore.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With