public void ProxyForClassWhichImplementsInterfaces() { object proxy = _generator.CreateClassProxy( typeof(MyInterfaceImpl), new ResultModifiedInvocationHandler( )); Assert.IsNotNull(proxy); Assert.IsTrue(typeof(MyInterfaceImpl).IsAssignableFrom(proxy.GetType())); Assert.IsTrue(typeof(IMyInterface).IsAssignableFrom(proxy.GetType())); IMyInterface inter = (IMyInterface)proxy; Assert.AreEqual(44, inter.Calc(20, 25)); }
public void AttributesOnTargetClassesWithInterfaceProxy() { ProxyGenerator _generator = new ProxyGenerator(); AttributeCheckerInterceptor interceptor = new AttributeCheckerInterceptor(); object proxy = _generator.CreateProxy(typeof(IMyInterface), interceptor, new MyInterfaceImpl()); IMyInterface inter = (IMyInterface)proxy; Assert.AreEqual(45, inter.Calc(20, 25)); Assert.IsTrue(interceptor.LastMethodHasAttribute); Assert.IsTrue(interceptor.LastTargethasAttribute); Assert.AreEqual(48, inter.Calc(20, 25, 1, 2)); Assert.IsTrue(interceptor.LastMethodHasAttribute); Assert.IsTrue(interceptor.LastTargethasAttribute); inter.Name = "hammett"; Assert.IsFalse(interceptor.LastMethodHasAttribute); Assert.IsTrue(interceptor.LastTargethasAttribute); }
public void TestGenerationSimpleInterface() { IInvocationHandler handler = new StandardInvocationHandler(new MyInterfaceImpl()); object proxy = ProxyGenerator.CreateProxy(typeof(IMyInterface), handler); Assert.IsNotNull(proxy); Assert.IsTrue(typeof(IMyInterface).IsAssignableFrom(proxy.GetType())); IMyInterface inter = (IMyInterface)proxy; Assert.AreEqual(45, inter.Calc(20, 25)); inter.Name = "opa"; Assert.AreEqual("opa", inter.Name); inter.Started = true; Assert.AreEqual(true, inter.Started); }
public void TestGenerationSimpleInterface() { object proxy = _generator.CreateProxy( typeof(IMyInterface), new ResultModifiedInvocationHandler(), new MyInterfaceImpl()); Assert.IsNotNull(proxy); Assert.IsTrue(typeof(IMyInterface).IsAssignableFrom(proxy.GetType())); IMyInterface inter = (IMyInterface)proxy; Assert.AreEqual(44, inter.Calc(20, 25)); inter.Name = "opa"; Assert.AreEqual("opa", inter.Name); inter.Started = true; Assert.AreEqual(true, inter.Started); }