public void TestMethodResolutionResolvesToExactMatchOfArgumentTypes()
{
Dictionary<string, object> args = new Dictionary<string, object>();
args["bars"] = new Bar[] { new Bar() };
Foo foo = new Foo();
// ensure noone changed our test class
Assert.AreEqual("ExactMatch", foo.MethodWithSimilarArguments(1, (Bar[])args["bars"]));
Assert.AreEqual("AssignableMatch", foo.MethodWithSimilarArguments(1, (ICollection)args["bars"]));
Assert.AreEqual("ExactMatch", ExpressionEvaluator.GetValue(foo, "MethodWithSimilarArguments(1, #bars)", args));
}