I am writing some unit tests using specflow and need a way to check whether a list of objects is ordered by a specific property. Currently I am doing it like this, but I am not sure if this is the best way to go about it.
var listFromApi = listOfObjects;
var sortedList = listFromApi.OrderBy(x => x.Property);
Assert.IsTrue(listFromApi.SequenceEqual(sortedList));
Is there a nice way this can be done using Fluent Assertions?
Yes. You can use BeInAscendingOrder
with a lambda.
listFromApi.Should().BeInAscendingOrder(x => x.Property);
For extra clarity at the expense of performance, you can also assert on content equivalence:
listFromApi.Should().BeEquivalentTo(listOfObjects)
.And.BeInAscendingOrder(x => x.Property);