[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var o1 = new XmlDocument();
var o2 = new XmlDocument();
var mock = new Mock<ITestInterface>();
mock.Setup(m => m.TestMethod(o1)).Returns(1);
mock.Setup(m => m.TestMethod(o2)).Returns(2);
Assert.AreEqual(1, mock.Object.TestMethod(o1));
Assert.AreEqual(2, mock.Object.TestMethod(o2));
}
}
public interface ITestInterface
{
int TestMethod(object input);
}
Why mock always returns second value? If I switched XmlDocument to anything else (object, StringBuilder etc) it would work as expected.