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);
        }
Пример #3
0
        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);
        }