Exemplo n.º 1
0
        public void Attributes_Not_Added_For_Method_For_Interface_With_Ancestor()
        {
            var  generator     = new ProxyGenerator();
            var  typeDefiniton = generator.GetTypeDefinition(typeof(ITypeA2_b), null, null);
            Type proxyType     = generator.CreateProxyType(typeDefiniton, null);

            var att = proxyType.GetMethod("MyMethod").GetCustomAttributes();

            Assert.AreEqual(1, att.Count());
            Assert.AreEqual(typeof(MethodInterceptorAttribute), att.ElementAt(0).GetType());
            Assert.AreEqual(typeof(IntForTypeA_Method), ((IInterceptorProvider)att.ElementAt(0)).InterceptorType);
        }
Exemplo n.º 2
0
        public void Attributes_Added_For_Interface_With_Ancestors()
        {
            var  generator     = new ProxyGenerator();
            var  typeDefiniton = generator.GetTypeDefinition(typeof(ITypeA2_b), null, null);
            Type proxyType     = generator.CreateProxyType(typeDefiniton, null);

            var typeAtt = proxyType.GetCustomAttributes();

            Assert.AreEqual(3, typeAtt.Count());
            Assert.AreEqual(typeof(SerializableAttribute), typeAtt.FirstOrDefault().GetType());
            Assert.AreEqual(typeof(XmlIncludeAttribute), typeAtt.ElementAt(1).GetType());
            Assert.AreEqual(typeof(AllInterceptorAttribute), typeAtt.ElementAt(2).GetType());
            Assert.AreEqual(typeof(IntForTypeA2), ((IInterceptorProvider)typeAtt.ElementAt(2)).InterceptorType);
        }
Exemplo n.º 3
0
        public void Attributes_Added_For_Set_And_Get_Properties_Full()
        {
            var  generator     = new ProxyGenerator();
            var  typeDefiniton = generator.GetTypeDefinition(typeof(TypeA1_Full), null, null);
            Type proxyType     = generator.CreateProxyType(typeDefiniton, null);

            var getAtt = proxyType.GetProperty("MyProperty").GetMethod.GetCustomAttributes();

            Assert.AreEqual(1, getAtt.Count());
            Assert.AreEqual(typeof(GetterInterceptor), getAtt.ElementAt(0).GetType());
            Assert.AreEqual(typeof(IntForTypeA_Get), ((IInterceptorProvider)getAtt.ElementAt(0)).InterceptorType);

            var setAtt = proxyType.GetProperty("MyProperty").SetMethod.GetCustomAttributes();

            Assert.AreEqual(1, setAtt.Count());
            Assert.AreEqual(typeof(SetterInterceptor), setAtt.ElementAt(0).GetType());
            Assert.AreEqual(typeof(IntForTypeA_Set), ((IInterceptorProvider)setAtt.ElementAt(0)).InterceptorType);
        }
Exemplo n.º 4
0
        public void Attributes_Added_For_Add_And_Remove_Events_For_Interface_With_Ancestor()
        {
            var  generator     = new ProxyGenerator();
            var  typeDefiniton = generator.GetTypeDefinition(typeof(ITypeA2_b), null, null);
            Type proxyType     = generator.CreateProxyType(typeDefiniton, null);

            var addAtt = proxyType.GetEvent("MyEvent").AddMethod.GetCustomAttributes();

            Assert.AreEqual(1, addAtt.Count());
            Assert.AreEqual(typeof(AddOnInterceptorAttribute), addAtt.ElementAt(0).GetType());
            Assert.AreEqual(typeof(IntForTypeA_Add), ((IInterceptorProvider)addAtt.ElementAt(0)).InterceptorType);

            var removeAtt = proxyType.GetEvent("MyEvent").RemoveMethod.GetCustomAttributes();

            Assert.AreEqual(1, removeAtt.Count());
            Assert.AreEqual(typeof(RemoveOnInterceptorAttribute), removeAtt.ElementAt(0).GetType());
            Assert.AreEqual(typeof(IntForTypeA_Remove), ((IInterceptorProvider)removeAtt.ElementAt(0)).InterceptorType);
        }