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); }
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); }
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); }
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); }