public void TestGet() { SupportBean testEvent = new SupportBean(); testEvent.IntPrimitive = 10; EventType eventType = SupportEventTypeFactory.CreateBeanType(typeof(SupportBean)); BeanEventBean eventBean = new BeanEventBean(testEvent, eventType); Assert.AreEqual(eventType, eventBean.EventType); Assert.AreEqual(testEvent, eventBean.Underlying); Assert.AreEqual(10, eventBean.Get("IntPrimitive")); // Test wrong property name try { eventBean.Get("dummy"); Assert.IsTrue(false); } catch (PropertyAccessException ex) { // Expected Log.Debug(".TestGet Expected exception, msg=" + ex.Message); } // Test wrong event type - not possible to happen under normal use try { eventType = SupportEventTypeFactory.CreateBeanType(typeof(SupportBeanSimple)); eventBean = new BeanEventBean(testEvent, eventType); eventBean.Get("MyString"); Assert.IsTrue(false); } catch (PropertyAccessException ex) { // Expected Log.Debug(".TestGet Expected exception, msg=" + ex.Message); } var getter = eventType.GetGetter("MyString"); try { getter.Get(new BeanEventBean(new SupportBean_A("id"), eventType)); Assert.Fail(); } catch (PropertyAccessException ex) { Assert.AreEqual("Mismatched getter instance to event bean type, expected com.espertech.esper.support.bean.SupportBeanSimple but received com.espertech.esper.support.bean.SupportBean_A", ex.Message); } }
public void TestInterfaceProperty() { // Assert implementations have full set of properties ISupportDImpl theEvent = new ISupportDImpl("D", "BaseD", "BaseDBase"); EventType typeBean = _beanEventTypeFactory.CreateBeanType(theEvent.GetType().FullName, theEvent.GetType(), true, true, true); EventBean bean = new BeanEventBean(theEvent, typeBean); Assert.AreEqual("D", bean.Get("D")); Assert.AreEqual("BaseD", bean.Get("BaseD")); Assert.AreEqual("BaseDBase", bean.Get("BaseDBase")); Assert.AreEqual(3, bean.EventType.PropertyNames.Length); EPAssertionUtil.AssertEqualsAnyOrder(bean.EventType.PropertyNames, new[] { "D", "BaseD", "BaseDBase" }); // Assert intermediate interfaces have full set of fields EventType interfaceType = _beanEventTypeFactory.CreateBeanType("d", typeof(ISupportD), true, true, true); EPAssertionUtil.AssertEqualsAnyOrder(interfaceType.PropertyNames, new[] { "D", "BaseD", "BaseDBase" }); }
public void TestGetMethods() { SupportBeanM testEvent = new SupportBeanM(); testEvent.SetIntPrimitive(10); EventType eventType = SupportEventTypeFactory.CreateBeanType(typeof(SupportBeanM)); BeanEventBean eventBean = new BeanEventBean(testEvent, eventType); Assert.AreEqual(eventType, eventBean.EventType); Assert.AreEqual(testEvent, eventBean.Underlying); Assert.AreEqual(10, eventBean.Get("IntPrimitive")); // Test wrong property name try { eventBean.Get("dummy"); Assert.Fail(); } catch (PropertyAccessException ex) { // Expected Log.Debug(".TestGetMethods Expected exception, msg=" + ex.Message); } // Test wrong event type - not possible to happen under normal use try { eventType = SupportEventTypeFactory.CreateBeanType(typeof(SupportBeanSimple)); eventBean = new BeanEventBean(testEvent, eventType); eventBean.Get("MyString"); Assert.Fail(); } catch (PropertyAccessException ex) { // Expected Log.Debug(".TestGetMethods Expected exception, msg=" + ex.Message); } }