[Test] public void TestNonStaticWithMultipleArgs() { object instance = new InstanceClz(222, 333); object wrapped = wrapper.CreateWrapperFromInstance(instance); Assert.AreEqual("INSTANCE[222][333][123]", wrapped.GetType().GetMethod("GetStringNonStatic").Invoke(wrapped, new object[] { 123 })); }
[Test] public void TestMergeMethodsInSingleType() { object instance = new InstanceClz(222); object wrapped = wrapper.CreateWrapperFromType(typeof(StaticClz), new [] { new MethodToProxify(miStatic, null), new MethodToProxify(miInstance, instance) }); Assert.AreEqual("INSTANCE[222][0][1]", wrapped.GetType().GetMethod("GetStringNonStatic").Invoke(wrapped, new object[] { 1 })); Assert.AreEqual("STATIC[2]", wrapped.GetType().GetMethod("GetStringStatic").Invoke(wrapped, new object[] { 2 })); }
[Test] public void TestParamsMethodCalledWithOneArgs() { InstanceClz instance = new InstanceClz(1); object wrapped = wrapper.CreateWrapperFromType(typeof(InstanceClz), new [] { new MethodToProxify(typeof(InstanceClz).GetMethod("ParamsMethod"), instance) }); MethodInfo target = wrapped.GetType().GetMethod("ParamsMethod", new[] { typeof(int) }); string ret = (string)target.Invoke(wrapped, new object[] { 1 }); Assert.AreEqual("ParamsMethod: 1", ret); }