public void ShimmedMethod_Generates_From_Static_Call_With_Multi_Params_And_Returns_Reference_Type() { var shimmedMethod = new ShimmedMethod <List <int> >(typeof(StaticMethodsTestClass).GetMethod("MethodWithMultiReferenceTypeParamsAndReturn")); Assert.IsNotNull(shimmedMethod); Assert.IsNotNull(shimmedMethod.Method); Assert.IsNotNull(shimmedMethod.Shim); var beforeDateTime = DateTime.Now; List <int> value = null; PoseContext.Isolate(() => { value = StaticMethodsTestClass.MethodWithMultiReferenceTypeParamsAndReturn(new List <int> { 3, 2, 1 }, "bird", DateTime.Today); }, new[] { shimmedMethod.Shim }); Assert.IsNotNull(value); Assert.AreEqual(1, shimmedMethod.CallResults.Count); var callResult = shimmedMethod.CallResults.First(); Assert.IsNotNull(callResult.Parameters); var afterDateTime = DateTime.Now; Assert.IsNotNull(callResult.CalledAt); Assert.IsTrue(beforeDateTime < callResult.CalledAt && callResult.CalledAt < afterDateTime); Assert.IsTrue(((List <int>)callResult.Parameters[0]).SequenceEqual(new List <int> { 3, 2, 1 })); Assert.AreEqual("bird", (string)callResult.Parameters[1]); Assert.AreEqual(DateTime.Today, (DateTime)callResult.Parameters[2]); }
public List <int> MethodWithMultiReferenceTypeParamsAndReturn(List <int> a, string b, DateTime c) { return(StaticMethodsTestClass.MethodWithMultiReferenceTypeParamsAndReturn(a, b, c)); }