public void TestArrayExpressions_OM() { String stmtText = "select {\"a\",\"b\"} as stringArray, " + "{} as emptyArray, " + "{1} as oneEleArray, " + "{1,2,3} as intArray " + "from " + typeof(SupportBean).FullName; EPStatementObjectModel model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create() .Add(Expressions.Array().Add(Expressions.Constant("a")).Add(Expressions.Constant("b")), "stringArray") .Add(Expressions.Array(), "emptyArray") .Add(Expressions.Array().Add(Expressions.Constant(1)), "oneEleArray") .Add(Expressions.Array().Add(Expressions.Constant(1)).Add(2).Add(3), "intArray"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName)); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(model); Assert.AreEqual(stmtText, model.ToEPL()); EPStatement stmt = _epService.EPAdministrator.Create(model); SupportUpdateListener listener = new SupportUpdateListener(); stmt.Events += listener.Update; SupportBean bean = new SupportBean("a", 10); _epService.EPRuntime.SendEvent(bean); EventBean theEvent = listener.AssertOneGetNewAndReset(); EPAssertionUtil.AssertEqualsExactOrder((String[])theEvent.Get("stringArray"), new String[] { "a", "b" }); EPAssertionUtil.AssertEqualsExactOrder((Object[])theEvent.Get("emptyArray"), new Object[0]); EPAssertionUtil.AssertEqualsExactOrder((int?[])theEvent.Get("oneEleArray"), new int?[] { 1 }); EPAssertionUtil.AssertEqualsExactOrder((int?[])theEvent.Get("intArray"), new int?[] { 1, 2, 3 }); }
public void Run(RegressionEnvironment env) { var epl = "@Name('s0') select {\"a\",\"b\"} as StringArray, " + "{} as EmptyArray, " + "{1} as OneEleArray, " + "{1,2,3} as IntArray " + "from " + typeof(SupportBean).Name; var model = new EPStatementObjectModel(); model.Annotations = Collections.SingletonList(AnnotationPart.NameAnnotation("s0")); model.SelectClause = SelectClause.Create() .Add(Expressions.Array().Add(Expressions.Constant("a")).Add(Expressions.Constant("b")), "StringArray") .Add(Expressions.Array(), "EmptyArray") .Add(Expressions.Array().Add(Expressions.Constant(1)), "OneEleArray") .Add(Expressions.Array().Add(Expressions.Constant(1)).Add(2).Add(3), "IntArray"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).Name)); Assert.AreEqual(epl, model.ToEPL()); env.CompileDeploy(model).AddListener("s0"); var bean = new SupportBean("a", 10); env.SendEventBean(bean); var theEvent = env.Listener("s0").AssertOneGetNewAndReset(); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("StringArray").Unwrap <string>(), new[] { "a", "b" }); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("EmptyArray").Unwrap <object>(), new object[0]); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("OneEleArray").Unwrap <int>(), new int[] { 1 }); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("IntArray").Unwrap <int>(), new int[] { 1, 2, 3 }); env.UndeployAll(); }
private void RunAssertionArrayExpressions_OM() { string stmtText = "select {\"a\",\"b\"} as stringArray, " + "{} as emptyArray, " + "{1} as oneEleArray, " + "{1,2,3} as intArray " + "from " + Name.Of <SupportBean>(); var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create() .Add(Expressions.Array().Add(Expressions.Constant("a")).Add(Expressions.Constant("b")), "stringArray") .Add(Expressions.Array(), "emptyArray") .Add(Expressions.Array().Add(Expressions.Constant(1)), "oneEleArray") .Add(Expressions.Array().Add(Expressions.Constant(1)).Add(2).Add(3), "intArray"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName)); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(model); Assert.AreEqual(stmtText, model.ToEPL()); EPStatement stmt = _epService.EPAdministrator.Create(model); var listener = new SupportUpdateListener(); stmt.AddListener(listener); var bean = new SupportBean("a", 10); _epService.EPRuntime.SendEvent(bean); EventBean theEvent = listener.AssertOneGetNewAndReset(); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("stringArray").UnwrapIntoArray <string>(), new string[] { "a", "b" }); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("emptyArray").UnwrapIntoArray <object>(), new object[0]); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("oneEleArray").UnwrapIntoArray <int>(), new int[] { 1 }); EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("intArray").UnwrapIntoArray <int>(), new int[] { 1, 2, 3 }); stmt.Dispose(); }