public void WhenTransparentProxyIsInterceptedUsingInterfaceInterceptor() { bool intercepted = false; InterfaceInterceptor interceptor = new InterfaceInterceptor(); TestProxy <ITest, TestClass> myProxy = new TestProxy <ITest, TestClass>(); ITest instance = myProxy.CreateProxy(); var interceptedMethodList = from i in interceptor.GetInterceptableMethods(typeof(ITest), instance.GetType()) where i.InterfaceMethodInfo.Name == "TestMethod" select i; bool containsMethod = interceptedMethodList.Count() == 1; Assert.IsTrue(containsMethod); var interceptedProxy = interceptor.CreateProxy(typeof(ITest), instance); interceptedProxy.AddInterceptionBehavior( new ActionInterceptionBehavior(() => intercepted = true)); int result = ((ITest)interceptedProxy).TestMethod("sample"); Assert.IsTrue(intercepted); }