// can't use ExpectedException since expected message is dynamic
public void CanMockMethodAcceptingTestClass_WillErrorOnWrongParameter()
{
string t2Text = "@";
string t3Text = "@";
try
{
TestClass t1 = MockRepository.Mock <TestClass>();
t1.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);
TestClass t2 = MockRepository.Mock <TestClass>();
t2.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);
TestClass t3 = MockRepository.Mock <TestClass>();
t3.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);
t2Text = t2.ToString();
t3Text = t3.ToString();
t1.Expect(x => x.MethodAcceptingTestClass(t2));
t1.MethodAcceptingTestClass(t3);
t1.VerifyExpectations(true);
Assert.False(true, "Expected ExpectationViolationException");
}
catch (ExpectationViolationException ex)
{
string msg =
string.Format("TestClass.MethodAcceptingTestClass({0}); Expected #0, Actual #1.\r\n" +
"TestClass.MethodAcceptingTestClass(equal to {1}); Expected #1, Actual #0.",
t3Text, t2Text);
Assert.Equal(msg, ex.Message);
}
}