public void TestGetComplexProperty() { var eventCombined = SupportBeanCombinedProps.MakeDefaultBean(); var eventBean = SupportEventBeanFactory.CreateObject(supportEventTypeFactory, eventCombined); Assert.AreEqual("0ma0", eventBean.Get("Indexed[0].Mapped('0ma').Value")); Assert.AreEqual(typeof(string), eventBean.EventType.GetPropertyType("Indexed[0].Mapped('0ma').Value")); Assert.IsNotNull(eventBean.EventType.GetGetter("Indexed[0].Mapped('0ma').Value")); Assert.AreEqual("0ma1", eventBean.Get("Indexed[0].Mapped('0mb').Value")); Assert.AreEqual("1ma0", eventBean.Get("Indexed[1].Mapped('1ma').Value")); Assert.AreEqual("1ma1", eventBean.Get("Indexed[1].Mapped('1mb').Value")); Assert.AreEqual("0ma0", eventBean.Get("Array[0].Mapped('0ma').Value")); Assert.AreEqual("1ma1", eventBean.Get("Array[1].Mapped('1mb').Value")); Assert.AreEqual("0ma0", eventBean.Get("Array[0].Mapprop('0ma').Value")); Assert.AreEqual("1ma1", eventBean.Get("Array[1].Mapprop('1mb').Value")); TryInvalidGet(eventBean, "dummy"); TryInvalidGet(eventBean, "dummy[1]"); TryInvalidGet(eventBean, "dummy('dd')"); TryInvalidGet(eventBean, "dummy.dummy1"); // indexed getter TryInvalidGetFragment(eventBean, "Indexed"); Assert.That(eventBean.GetFragment("Indexed[0]").AsEventBean(), Is.Not.Null); Assert.That(eventBean.GetFragment("Indexed[0]").AsEventBean().EventType, Is.Not.Null); Assert.That(eventBean.GetFragment("Indexed[0]").AsEventBean().EventType.UnderlyingType, Is.EqualTo(typeof(SupportBeanCombinedProps.NestedLevOne))); Assert.That(eventBean.GetFragment("Array[0]"), Is.Not.Null); Assert.That(eventBean.GetFragment("Array[0]").AsEventBean(), Is.Not.Null); Assert.That(eventBean.GetFragment("Array[0]").AsEventBean().Get("NestLevOneVal"), Is.EqualTo("abc")); Assert.That(eventBean.GetFragment("Array[2]?"), Is.Not.Null); Assert.That(eventBean.GetFragment("Array[2]?").AsEventBean(), Is.Not.Null); Assert.That(eventBean.GetFragment("Array[2]?").AsEventBean().Get("NestLevOneVal"), Is.EqualTo("abc")); //Assert.AreEqual("abc", ((EventBean) eventBean.GetFragment("Array[0]")).Get("NestLevOneVal")); //Assert.AreEqual("abc", eventBean.GetFragment("Array[2]?").AsEventBean().Get("NestLevOneVal")); Assert.IsNull(eventBean.GetFragment("Array[3]?")); Assert.IsNull(eventBean.GetFragment("Array[4]?")); Assert.IsNull(eventBean.GetFragment("Array[5]?")); var eventText = SupportEventTypeAssertionUtil.Print(eventBean); //System.out.println(eventText); var eventComplex = SupportBeanComplexProps.MakeDefaultBean(); eventBean = SupportEventBeanFactory.CreateObject(supportEventTypeFactory, eventComplex); Assert.AreEqual("NestedValue", ((EventBean) eventBean.GetFragment("Nested")).Get("NestedValue")); }