Say I have the following:
public interface ISession
{
T Get(dynamic filter); }
}
And I have the following code that I want to
First of all, anonymous objects are not really dynamic
.
If you used dynamic
objects like
dynamic user1Filter = new ExpandoObject();
user1Filter.Name = "test 1";
var user1 = session.Get(user1Filter);
you could mock it like
sessionMock.Setup(x => x.Get(DynamicFilter.HasName("test 1")));
by implementing custom argument matcher:
static class DynamicFilter
{
[Matcher] public static object HasName(string name) { return null; }
public static bool HasName(dynamic filter, string name)
{
string passedName = filter.Name; //dynamic expression
return name.Equals(passedName);
}
}