public void ImplicitlyImplementedMethodsAreInterceptedIfVirtual() { CallCountHandler handler = new CallCountHandler(); Interesting instance = WireupHelper.GetInterceptedInstance <Interesting>("DoSomethingInteresting", handler); instance.DoSomethingInteresting(); Assert.IsTrue(instance.SomethingWasCalled); Assert.AreEqual(1, handler.CallCount); }
public void CanInterceptNestedClass() { PostCallCountHandler handler = new PostCallCountHandler(); NestedClass instance = WireupHelper.GetInterceptedInstance <NestedClass>("MakeAValue", handler); int result = instance.MakeAValue(12); Assert.AreEqual((12 * 37) + (12 / 2), result); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptMethodWithGenericReturnTypeForValueTypeGenericParameter() { PostCallCountHandler handler = new PostCallCountHandler(); ClassWithDefaultCtor instance = WireupHelper.GetInterceptedInstance <ClassWithDefaultCtor>("MethodWithGenericReturnType", handler); int value = instance.MethodWithGenericReturnType(5); Assert.AreEqual(5, value); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptMethodsWithParameters() { PostCallCountHandler handler = new PostCallCountHandler(); ClassWithDefaultCtor instance = WireupHelper.GetInterceptedInstance <ClassWithDefaultCtor>("AddUp", handler); string result = instance.AddUp(5, 12); Assert.AreEqual("17", result); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptMethodsThatReturnReferenceTypes() { PostCallCountHandler handler = new PostCallCountHandler(); ClassWithDefaultCtor instance = WireupHelper.GetInterceptedInstance <ClassWithDefaultCtor>("GimmeName", handler); string result = instance.GimmeName(); Assert.AreEqual("name", result); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptMethodsThatHaveReturnValues() { PostCallCountHandler handler = new PostCallCountHandler(); ClassWithDefaultCtor instance = WireupHelper.GetInterceptedInstance <ClassWithDefaultCtor>("CalculateAnswer", handler); int result = instance.CalculateAnswer(); Assert.AreEqual(42, result); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptGenericMethodOnClosedGenericType() { PostCallCountHandler handler = new PostCallCountHandler(); InterceptingGenericClass <DateTime> instance = WireupHelper.GetInterceptedInstance <InterceptingGenericClass <DateTime> >("Reverse", handler); string result = instance.Reverse(137); Assert.AreEqual("731", result); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptMethodsWithRefParameters() { PostCallCountHandler handler = new PostCallCountHandler(); ClassWithDefaultCtor instance = WireupHelper.GetInterceptedInstance <ClassWithDefaultCtor>("MethodWithRefParameters", handler); string s = "abc"; int result = instance.MethodWithRefParameters(5, ref s, 10); Assert.AreEqual(15, result); Assert.AreEqual("abc hooray!", s); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptClosedGenericType() { PostCallCountHandler handler = new PostCallCountHandler(); InterceptingGenericClass <DateTime> instance = WireupHelper.GetInterceptedInstance <InterceptingGenericClass <DateTime> >("Decorate", handler); DateTime now = DateTime.Now; string result = instance.Decorate(now); Assert.AreEqual("**" + now + "**", result); Assert.AreEqual(1, handler.CallsCompleted); }
public void CanInterceptMethodsWithOutParameters() { PostCallCountHandler handler = new PostCallCountHandler(); ClassWithDefaultCtor instance = WireupHelper.GetInterceptedInstance <ClassWithDefaultCtor>("OutParams", handler); int plusOne; int timesTwo; instance.OutParams(5, out plusOne, out timesTwo); Assert.AreEqual(5 + 1, plusOne); Assert.AreEqual(5 * 2, timesTwo); Assert.AreEqual(1, handler.CallsCompleted); }