public void Can_Callback_OnReturn_And_Replace_Return_Value()
        {
            var foo = new Foo();
            var proxy = new Proxy<IFoo>()
                .Intercept(f => f.Return())
                .OnInvoke(mi => foo.Return())
                .OnReturn((mi, r) => r.Equals(1) ? -1 : -2)
                .Save();

            Assert.Equal(-1, proxy.Return());
            Assert.True(foo.WasExecuted);
        }