private void RunAssertionStatementOM(EPServiceProvider epService) { var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create("symbol", "price") .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH) .Add(Expressions.Avg("price"), "avgPrice"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportMarketDataBean).FullName) .AddView("length", Expressions.Constant(5))); model.HavingClause = Expressions.Lt(Expressions.Property("price"), Expressions.Avg("price")); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(epService.Container, model); string epl = "select irstream symbol, price, avg(price) as avgPrice " + "from " + typeof(SupportMarketDataBean).FullName + "#length(5) " + "having price<avg(price)"; Assert.AreEqual(epl, model.ToEPL()); EPStatement stmt = epService.EPAdministrator.Create(model); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; TryAssertion(epService, listener, stmt); stmt.Dispose(); }
public void TestCreateFromOMComplete() { var model = new EPStatementObjectModel(); model.InsertInto = InsertIntoClause.Create("ReadyStreamAvg", "line", "avgAge"); model.SelectClause = SelectClause.Create() .Add("line") .Add(Expressions.Avg("age"), "avgAge"); var filter = Filter.Create(typeof(SupportBean).FullName, Expressions.In("line", 1, 8, 10)); model.FromClause = FromClause.Create(FilterStream.Create(filter, "RS").AddView("win", "time", Expressions.Constant(10))); model.WhereClause = Expressions.IsNotNull("waverId"); model.GroupByClause = GroupByClause.Create("line"); model.HavingClause = Expressions.Lt(Expressions.Avg("age"), Expressions.Constant(0)); model.OutputLimitClause = OutputLimitClause.Create(Expressions.TimePeriod(null, null, null, 10, null)); model.OrderByClause = OrderByClause.Create("line"); Assert.AreEqual("insert into ReadyStreamAvg(line, avgAge) select line, avg(age) as avgAge from com.espertech.esper.support.bean.SupportBean(line in (1,8,10)).win:time(10) as RS where waverId is not null group by line having avg(age)<0 output every 10 seconds order by line", model.ToEPL()); SerializableObjectCopier.Copy(model); }
public void Run(RegressionEnvironment env) { EPStatementObjectModel model = new EPStatementObjectModel(); model.SetInsertInto(InsertIntoClause.Create("ReadyStreamAvg", "line", "avgAge")); model.SetSelect(SelectClause.Create().Add("line").Add(Expressions.Avg("age"), "avgAge")); Filter filter = Filter.Create(typeof(SupportBean).FullName, Expressions.In("line", 1, 8, 10)); model.SetFrom(FromClause.Create(FilterStream.Create(filter, "RS").AddView("time", Expressions.Constant(10)))); model.SetWhere(Expressions.IsNotNull("waverId")); model.SetGroupBy(GroupByClause.Create("line")); model.SetHaving(Expressions.Lt(Expressions.Avg("age"), Expressions.Constant(0))); model.SetOutputLimit(OutputLimitClause.Create(Expressions.TimePeriod(null, null, null, 10, null))); model.SetOrderBy(OrderByClause.Create("line")); Assert.AreEqual( "insert into ReadyStreamAvg(line, avgAge) select line, avg(age) as avgAge from " + typeof(SupportBean).CleanName() + "(line in (1,8,10))#time(10) as RS where waverId is not null group by line having avg(age)<0 output every 10.0d seconds order by line", model.ToEPL()); SerializableObjectCopier.CopyMayFail(env.Container, model); }
public void TestSumOneViewOM() { var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create("Symbol", "Price").SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH).Add(Expressions.Avg("Price"), "avgPrice"); model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportMarketDataBean).FullName).AddView("win", "length", Expressions.Constant(5))); model.HavingClause = Expressions.Lt(Expressions.Property("Price"), Expressions.Avg("Price")); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(model); var viewExpr = "select irstream Symbol, Price, avg(Price) as avgPrice " + "from " + typeof(SupportMarketDataBean).FullName + ".win:length(5) " + "having Price<avg(Price)"; Assert.AreEqual(viewExpr, model.ToEPL()); var selectTestView = _epService.EPAdministrator.Create(model); selectTestView.AddListener(_listener); RunAssertion(selectTestView); }
public void Run(RegressionEnvironment env) { var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create("Symbol", "Price") .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH) .Add(Expressions.Avg("Price"), "avgPrice"); model.FromClause = FromClause.Create( FilterStream.Create(typeof(SupportMarketDataBean).Name).AddView("length", Expressions.Constant(5))); model.HavingClause = Expressions.Lt(Expressions.Property("Price"), Expressions.Avg("Price")); model = env.CopyMayFail(model); var epl = "select irstream Symbol, Price, avg(Price) as avgPrice " + "from SupportMarketDataBean#length(5) " + "having Price<avg(Price)"; Assert.AreEqual(epl, model.ToEPL()); model.Annotations = Collections.SingletonList(AnnotationPart.NameAnnotation("s0")); env.CompileDeploy(model).AddListener("s0"); TryAssertion(env); env.UndeployAll(); }