public void EventHandlerOrdering_ShouldOrderHandlersByAttribute()
{
// Arrange
// These are added in reverse order to make sure the handler sort works
_eventHandlers.Add(Substitute.For<HandlerWithoutEventsWithOrdering>());
_eventHandlers.Add(Substitute.For<HandlerWithoutAdditionalEvents>());
_eventHandlers.Add(Substitute.For<HandlerWithoutEventsWithoutOrdering>());
// Act
var executionOrder = _eventHandlers.OrderByExecutionOrder().ToList();
// Assert
Assert.IsTrue(executionOrder[0] == _eventHandlers[2]);
Assert.IsTrue(executionOrder[1] == _eventHandlers[1]);
Assert.IsTrue(executionOrder[2] == _eventHandlers[0]);
}