Reputation: 83244
I have two lists, I want to check whether the two lists are the same ( order not important), and whether it's the same depends on the IEqualityComparer
instance I implement.
The ideal case is that I can use CollectionAssert.AreEquivalent
with Custom IEqualityComparer
. However it seems that CollectionAssert.AreEquivalent
doesn't take in any IEqualityComparer
.
Any idea on how to do this in a succinct and reusable manner?
Upvotes: 32
Views: 5060
Reputation: 59129
CollectionAssert.AreEquivalent
is implemented as:
Assert.That(actual, new CollectionEquivalentConstraint(expected), message, args);
You can write out your assert that way and supply a custom IEqualityComparer
with Using
:
Assert.That(actual,
new CollectionEquivalentConstraint(expected).Using(customComparer));
You can also shorten new CollectionEquivalentConstraint
to Is.EquivalentTo
:
Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer));
Upvotes: 40