Jak próbować wywołać metodę, która pobiera dynamiczny obiekt

Powiedz, że mam:

public interface ISession 
{
   T Get<T>(dynamic filter); }
}

Mam następujący kod, który chcę przetestować:

var user1 = session.Get<User>(new {Name = "test 1"});
var user2 = session.Get<User>(new {Name = "test 2"});

Jak mógłbym kpić z tego połączenia?

Używając Moqa, zmęczyłem się tym:

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});

I to nie zadziałało. Zwracane wyniki są puste

Próbowałem też wykonać następujące czynności z Rhino Mocks:

var session = MockRepository.GenerateStub<ISession>();
session.Stub(x => x.Get<User>(new {Name = "test 1"})).Return(new User{Id=1});

Nie ma też szczęścia. Znowu.

Jak mam to zrobić?

Dzięki,