I found an issue with Long's and Int's being treated as different objects in the Mocks.
Here's my test class:
number + 1;
Here's my test that fails:
number = 5;
expectedResult = 42;
var myClass = Mock.Create<MyClass>();
Mock.Arrange(() => myClass.AddOne(number))
var result = myClass.AddOne(number);
Assert.AreEqual(expectedResult, result); // result = 0
If I change "number" to a long the test passes.
This also holds true for this:
Mock.Assert(() => myClass.AddOne(number), Occurs.Once());
My expectations were for int and long to produce the same result since they are "equal" and there is no way to actually pass a true int into that method.
intNumber = 5;
longNumber = 5;