private static void RunTest(PropTestDesc test, BeanEventType eventType, EventBean eventBean) { String propertyName = test.PropertyName; Assert.AreEqual(test.IsProperty, eventType.IsProperty(propertyName), "isProperty mismatch on '" + propertyName + "',"); Assert.AreEqual(test.Clazz, eventType.GetPropertyType(propertyName), "getPropertyType mismatch on '" + propertyName + "',"); EventPropertyGetter getter = eventType.GetGetterSPI(propertyName); if (getter == null) { Assert.IsFalse(test.HasGetter, "getGetter null on '" + propertyName + "',"); } else { Assert.IsTrue(test.HasGetter, "getGetter not null on '" + propertyName + "',"); #pragma warning disable CS0252 // Possible unintended reference comparison; left hand side needs cast if (test.GetterReturnValue == typeof(NullReferenceException)) { #pragma warning restore CS0252 // Possible unintended reference comparison; left hand side needs cast try { getter.Get(eventBean); Assert.Fail("getGetter not throwing null pointer on '" + propertyName); } catch (NullReferenceException) { // expected } } else { var value = getter.Get(eventBean); Assert.AreEqual(test.GetterReturnValue, value, "getter value mismatch on '" + propertyName + "',"); } } }
/// <summary> /// Ctor. /// </summary> /// <param name="type">the type of read</param> public BeanEventBeanReader(BeanEventType type) { var properties = type.PropertyNames; var getters = new List <BeanEventPropertyGetter>(); foreach (string property in properties) { var getter = (BeanEventPropertyGetter)type.GetGetterSPI(property); if (getter != null) { getters.Add(getter); } } _getterArray = getters.ToArray(); }