Cómo simular una llamada de método que toma un objeto dinámico
Digamos que tengo lo siguiente:
<code>public interface ISession { T Get<T>(dynamic filter); } } </code>
Y tengo el siguiente código que quiero probar:
<code>var user1 = session.Get<User>(new {Name = "test 1"}); var user2 = session.Get<User>(new {Name = "test 2"}); </code>
¿Cómo me burlaría de esta llamada?
Usando Moq, me cansé de hacer esto:
<code>var sessionMock = new Mock<ISession>(); sessionMock.Setup(x => x.Get<User>(new {Name = "test 1")).Returns(new User{Id = 1}); sessionMock.Setup(x => x.Get<User>(new {Name = "test 1")).Returns(new User{Id = 2}); </code>
Y eso no funcionó. Los resultados devueltos son nulos.
También intenté hacer lo siguiente con Rhino Mocks:
<code>var session = MockRepository.GenerateStub<ISession>(); session.Stub(x => x.Get<User>(new {Name = "test 1"})).Return(new User{Id=1}); </code>
Tampoco hay suerte. Nulo otra vez.
Entonces, ¿cómo haría esto?
Gracias,