public void OnInvocation(IInvocation invocation) { if (invocation == null) { throw new ArgumentNullException("invocation"); } Action action; var wasMet = expectationScope.TryMeet(invocation, out action) || TryMeetDefaultObjectMethodInvocation(invocation, out action); expectationScope.InvocationHistory.RegisterInvocation(invocation, wasMet); if (wasMet) { action(); } else { throw new ExpectationsException(expectationScope, "Unexpected invocation '{0}', expected:", invocation); } }