public void Members() { IClassMapping rm = new AttributeOverXmlClassMapping(GetXmlClassMapping(typeof(MixAddress))); var mi = new List <MemberInfo>(rm.GetMembers()); Assert.AreEqual(16, mi.Count); // the members of the class by reflection rm = new XmlOverAttributeClassMapping(GetXmlClassMapping(typeof(MixAddress))); mi = new List <MemberInfo>(rm.GetMembers()); Assert.AreEqual(16, mi.Count); }
public void ClassAttributes() { IClassMapping rm = new AttributeOverXmlClassMapping(GetXmlClassMapping(typeof(MixAddress))); var mi = new List <Attribute>(rm.GetClassAttributes()); Assert.AreEqual(0, mi.Count); rm = new AttributeOverXmlClassMapping(GetXmlClassMapping(typeof(MixSuricato))); mi = new List <Attribute>(rm.GetClassAttributes()); Assert.AreEqual(2, mi.Count); rm = new XmlOverAttributeClassMapping(GetXmlClassMapping(typeof(MixSuricato))); mi = new List <Attribute>(rm.GetClassAttributes()); Assert.AreEqual(2, mi.Count); }
public IClassMapping GetClassMapping(System.Type clazz, ValidatorMode mode) { IClassMapping externalDefinition; IClassMapping result = null; switch (mode) { case ValidatorMode.UseAttribute: break; case ValidatorMode.UseExternal: result = GetExternalDefinitionFor(clazz); if (result == null) { log.Warn(string.Format("External definition not foud for class {0} in ValidatorMode.UseExternal mode.", clazz.FullName)); return(null); // <<<<<=== } break; case ValidatorMode.OverrideAttributeWithExternal: externalDefinition = GetExternalDefinitionFor(clazz); if (externalDefinition != null) { log.Debug("XmlOverAttribute applied for " + clazz.FullName); result = new XmlOverAttributeClassMapping(externalDefinition); } break; case ValidatorMode.OverrideExternalWithAttribute: externalDefinition = GetExternalDefinitionFor(clazz); if (externalDefinition != null) { log.Debug("AttributeOverXml applied for " + clazz.FullName); result = new AttributeOverXmlClassMapping(externalDefinition); } break; } if (result != null) { return(result); } else { log.Debug("Reflection applied for " + clazz.FullName); return(new ReflectionClassMapping(clazz)); } }
public void MemberAttributes() { IClassMapping rm = new AttributeOverXmlClassMapping(GetXmlClassMapping(typeof(MixAddress))); MemberInfo mi = typeof(MixAddress).GetField("floor"); var mas = new List <Attribute>(rm.GetMemberAttributes(mi)); Assert.AreEqual(1, mas.Count); mi = typeof(MixAddress).GetProperty("Zip"); mas = new List <Attribute>(rm.GetMemberAttributes(mi)); Assert.AreEqual(3, mas.Count); mi = typeof(MixAddress).GetProperty("Id"); mas = new List <Attribute>(rm.GetMemberAttributes(mi)); Assert.AreEqual(2, mas.Count); foreach (var ma in mas) { var ra = ma as RangeAttribute; if (ra != null) { Assert.AreEqual(2000, ra.Max); } } rm = new XmlOverAttributeClassMapping(GetXmlClassMapping(typeof(MixAddress))); mi = typeof(MixAddress).GetField("floor"); mas = new List <Attribute>(rm.GetMemberAttributes(mi)); Assert.AreEqual(1, mas.Count); mi = typeof(MixAddress).GetProperty("Zip"); mas = new List <Attribute>(rm.GetMemberAttributes(mi)); Assert.AreEqual(3, mas.Count); mi = typeof(MixAddress).GetProperty("Id"); mas = new List <Attribute>(rm.GetMemberAttributes(mi)); Assert.AreEqual(2, mas.Count); foreach (var ma in mas) { var ra = ma as RangeAttribute; if (ra != null) { Assert.AreEqual(9999, ra.Max); } } }