public void TestMapIndexPropertyRooted() { _epService.EPAdministrator.Configuration.AddEventType(typeof(MyTypeErasure)); var stmt = _epService.EPAdministrator.CreateEPL("select " + "InnerTypes('key1') as c0,\n" + "InnerTypes(key) as c1,\n" + "InnerTypes('key1').ids[1] as c2,\n" + "InnerTypes(key).GetIds(subkey) as c3,\n" + "InnerTypesArray[1].ids[1] as c4,\n" + "InnerTypesArray(subkey).GetIds(subkey) as c5,\n" + "InnerTypesArray(subkey).GetIds(s0, 'xyz') as c6,\n" + "InnerTypesArray(subkey).GetIds(*, 'xyz') as c7\n" + "from MyTypeErasure as s0"); stmt.AddListener(_listener); Assert.That(stmt.EventType.GetPropertyType("c0"), Is.EqualTo(typeof(InnerType))); Assert.That(stmt.EventType.GetPropertyType("c1"), Is.EqualTo(typeof(InnerType))); Assert.That(stmt.EventType.GetPropertyType("c2"), Is.EqualTo(typeof(int))); Assert.That(stmt.EventType.GetPropertyType("c3"), Is.EqualTo(typeof(int))); var @event = new MyTypeErasure("key1", 2, Collections.SingletonMap("key1", new InnerType(new int[] { 20, 30, 40 })), new InnerType[] { new InnerType(new int[] { 2, 3 }), new InnerType(new int[] { 4, 5 }), new InnerType(new int[] { 6, 7, 8 }) }); _epService.EPRuntime.SendEvent(@event); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "c0,c1,c2,c3,c4,c5,c6,c7".Split(','), new object[] { @event.InnerTypes.Get("key1"), @event.InnerTypes.Get("key1"), 30, 40, 5, 8, 999999, 999999 }); }
private void RunAssertionMapIndexPropertyRooted(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddEventType(typeof(MyTypeErasure)); var stmt = epService.EPAdministrator.CreateEPL( "select " + "InnerTypes('key1') as c0,\n" + "InnerTypes(key) as c1,\n" + "InnerTypes('key1').ids[1] as c2,\n" + "InnerTypes(key).GetIds(subkey) as c3,\n" + "innerTypesArray[1].ids[1] as c4,\n" + "InnerTypesArray(subkey).GetIds(subkey) as c5,\n" + "InnerTypesArray(subkey).GetIds(s0, 'xyz') as c6,\n" + "InnerTypesArray(subkey).GetIds(*, 'xyz') as c7\n" + "from MyTypeErasure as s0"); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; Assert.AreEqual(typeof(InnerType), stmt.EventType.GetPropertyType("c0")); Assert.AreEqual(typeof(InnerType), stmt.EventType.GetPropertyType("c1")); Assert.AreEqual(typeof(int), stmt.EventType.GetPropertyType("c2")); Assert.AreEqual(typeof(int), stmt.EventType.GetPropertyType("c3")); var @event = new MyTypeErasure( "key1", 2, Collections.SingletonMap("key1", new InnerType(new[] {20, 30, 40})), new[] {new InnerType(new[] {2, 3}), new InnerType(new[] {4, 5}), new InnerType(new[] {6, 7, 8})}); epService.EPRuntime.SendEvent(@event); EPAssertionUtil.AssertProps( listener.AssertOneGetNewAndReset(), "c0,c1,c2,c3,c4,c5,c6,c7".Split(','), new object[] { @event.InnerTypes.Get("key1"), @event.InnerTypes.Get("key1"), 30, 40, 5, 8, 999999, 999999 }); stmt.Dispose(); }