The following test fails:
[TestMethod]
public void TestCallOrderWithInOrder()
{
// Arrange
var mockClass1 = Mock.Create<Class1>();
var mockClass2 = Mock.Create<Class2>();
Mock.Arrange(() => mockClass1.Method1())
.InOrder();
Mock.Arrange(() => mockClass2.Method1())
.InOrder()
.Occurs(2);
Mock.Arrange(() => mockClass1.Method2())
.InOrder();
// Act
mockClass1.Method1();
mockClass2.Method1();
mockClass2.Method1(); // <--- this call is not allowed by
// InOrder clause currently
// and throws AssertFailedException
mockClass1.Method2();
// Assert
Mock.Assert(mockClass1);
Mock.Assert(mockClass2);
}