public void OutOfOrderExecutionShouldSucceed() { var i = new PublishInvocation<MessageA> {Message = new MessageA()}; var j = new SendInvocation<MessageB> {Message = new MessageB()}; var k = new SendLocalInvocation<MessageA> {Message = new MessageA()}; var l = new HandleCurrentMessageLaterInvocation<object>(); var exp1 = new ExpectedSendLocalInvocation<MessageA> {Check = m => true}; var exp2 = new ExpectedSendInvocation<MessageB> {Check = m => true}; var exp3 = new ExpectedPublishInvocation<MessageA> {Check = m => true}; var exp4 = new ExpectedHandleCurrentMessageLaterInvocation<object>(); exp1.Validate(i, j, k, l); exp2.Validate(i, j, k, l); exp3.Validate(i, j, k, l); exp4.Validate(i, j, k, l); }