private void RunAssertionSubSelect(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); EPStatement stmt = epService.EPAdministrator.CreateEPL("select TheString from SupportBean s0 where " + "exists (select * from OrderEvent[books][reviews]#unique(reviewId) where reviewId = s0.IntPrimitive)"); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); epService.EPRuntime.SendEvent(new SupportBean("E1", 1)); Assert.IsTrue(listener.GetAndClearIsInvoked()); epService.EPRuntime.SendEvent(new SupportBean("E2", -1)); Assert.IsFalse(listener.GetAndClearIsInvoked()); epService.EPRuntime.SendEvent(new SupportBean("E2", 201)); Assert.IsTrue(listener.GetAndClearIsInvoked()); stmt.Dispose(); }
public void Run(RegressionEnvironment env) { var fields = new [] { "TheString","IntPrimitive" }; var path = new RegressionPath(); env.CompileDeploy("create window SupportBeanWindow#lastevent as SupportBean", path); env.CompileDeploy("insert into SupportBeanWindow select * from SupportBean", path); env.CompileDeploy("create window OrderWindowNWOT#lastevent as OrderBean", path); env.CompileDeploy("insert into OrderWindowNWOT select * from OrderBean", path); var stmtText = "@Name('s0') on OrderWindowNWOT[Books] owb select sbw.* from SupportBeanWindow sbw where TheString = Title"; env.CompileDeploy(stmtText, path).AddListener("s0"); env.SendEventBean(new SupportBean("E1", 1)); env.SendEventBean(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("Foundation 2", 2)); env.SendEventBean(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {"Foundation 2", 2}}); env.UndeployAll(); }
public void Run(RegressionEnvironment env) { var fields = new [] { "ReviewId" }; var stmtText = "@Name('s0') select ReviewId from OrderBean[Books][Reviews] bookReviews order by ReviewId asc"; env.CompileDeploy(stmtText).AddListener("s0"); AssertStatelessStmt(env, "s0", true); env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {1}, new object[] {2}, new object[] {10}}); env.Listener("s0").Reset(); env.SendEventBean(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {201}}); env.Listener("s0").Reset(); env.UndeployAll(); }
private void RunAssertionNamedWindowOnTrigger(EPServiceProvider epService) { string[] fields = "TheString,IntPrimitive".Split(','); epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); epService.EPAdministrator.CreateEPL("create window SupportBeanWindow#lastevent as SupportBean"); epService.EPAdministrator.CreateEPL("insert into SupportBeanWindow select * from SupportBean"); epService.EPAdministrator.CreateEPL("create window OrderWindowNWOT#lastevent as OrderEvent"); epService.EPAdministrator.CreateEPL("insert into OrderWindowNWOT select * from OrderEvent"); string stmtText = "on OrderWindowNWOT[books] owb select sbw.* from SupportBeanWindow sbw where TheString = title"; EPStatement stmt = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; epService.EPRuntime.SendEvent(new SupportBean("E1", 1)); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(listener.IsInvoked); epService.EPRuntime.SendEvent(new SupportBean("Foundation 2", 2)); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "Foundation 2", 2 } }); epService.EPAdministrator.DestroyAllStatements(); }
public void TestUnidirectionalJoinCount() { _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "select count(*) from " + "OrderEvent orderEvent unidirectional, " + "OrderEvent[books] as book, " + "OrderEvent[orderdetail.items] item " + "where book.bookId = item.productId order by book.bookId asc, item.amount asc"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(stmtText); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "count(*)".Split(','), new object[] { 3L }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventTwo()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "count(*)".Split(','), new object[] { 1L }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventThree()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "count(*)".Split(','), new object[] { 1L }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(_listener.IsInvoked); }
private void RunAssertionPatternSelect(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); EPStatement stmt = epService.EPAdministrator.CreateEPL("select * from pattern [" + "every r=OrderEvent[books][reviews] -> SupportBean(IntPrimitive = r[0].reviewId)]"); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); epService.EPRuntime.SendEvent(new SupportBean("E1", 1)); Assert.IsTrue(listener.GetAndClearIsInvoked()); epService.EPRuntime.SendEvent(new SupportBean("E2", -1)); Assert.IsFalse(listener.GetAndClearIsInvoked()); epService.EPRuntime.SendEvent(new SupportBean("E2", 201)); Assert.IsTrue(listener.GetAndClearIsInvoked()); stmt.Dispose(); }
private void RunAssertionPropertyEval(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddEventType("OrderBean", typeof(OrderBean)); string[] fields = "c1,c2".Split(','); epService.EPAdministrator.CreateEPL("create window MyWindowPE#keepall as (c1 string, c2 string)"); string epl = "on OrderBean[books] " + "merge MyWindowPE mw " + "when not matched then " + "insert select bookId as c1, title as c2 "; EPStatement stmt = epService.EPAdministrator.CreateEPL(epl); var mergeListener = new SupportUpdateListener(); stmt.Events += mergeListener.Update; epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(mergeListener.LastNewData, fields, new object[][] { new object[] { "10020", "Enders Game" }, new object[] { "10021", "Foundation 1" }, new object[] { "10022", "Stranger in a Strange Land" } }); epService.EPAdministrator.DestroyAllStatements(); }
private void TryAssertionFromClauseAsMultiple(EPServiceProvider epService, bool soda) { var epl = "on OrderEvent as oe " + "insert into StartEvent select oe.orderdetail.OrderId as oi " + "insert into ThenEvent select * from [select oe.orderdetail.OrderId as oi, ItemId from orderdetail.Items] as item " + "insert into MoreEvent select oe.orderdetail.OrderId as oi, item.ItemId as ItemId from [select oe, * from orderdetail.Items] as item " + "output all"; SupportModelHelper.CreateByCompileOrParse(epService, soda, epl); var listeners = GetListeners(); epService.EPAdministrator.CreateEPL("select * from StartEvent").Events += listeners[0].Update; epService.EPAdministrator.CreateEPL("select * from ThenEvent").Events += listeners[1].Update; epService.EPAdministrator.CreateEPL("select * from MoreEvent").Events += listeners[2].Update; epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); var fieldsOrderId = "oi".Split(','); var fieldsItems = "oi,ItemId".Split(','); EPAssertionUtil.AssertProps(listeners[0].AssertOneGetNewAndReset(), fieldsOrderId, new object[] { "PO200901" }); var expected = new[] { new object[] { "PO200901", "A001" }, new object[] { "PO200901", "A002" }, new object[] { "PO200901", "A003" } }; EPAssertionUtil.AssertPropsPerRow(listeners[1].GetAndResetDataListsFlattened().First, fieldsItems, expected); EPAssertionUtil.AssertPropsPerRow(listeners[2].GetAndResetDataListsFlattened().First, fieldsItems, expected); epService.EPAdministrator.DestroyAllStatements(); }
public void TestJoin() { string[] fields = "book.bookId,item.itemId,amount".Split(','); _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "select book.bookId,item.itemId,amount from " + "OrderEvent[books]#firstunique(bookId) book, " + "OrderEvent[orderdetail.items]#keepall item " + "where book.bookId = item.productId " + "order by book.bookId, item.itemId"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(stmtText); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "10020", "A001", 10 }, new object[] { "10020", "A003", 30 }, new object[] { "10021", "A002", 25 } }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { "10020", "A001", 10 }, new object[] { "10020", "A003", 30 }, new object[] { "10021", "A002", 25 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventTwo()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "10022", "B001", 5 } }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { "10020", "A001", 10 }, new object[] { "10020", "A003", 30 }, new object[] { "10021", "A002", 25 }, new object[] { "10022", "B001", 5 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventThree()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "10021", "C001", 50 } }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { "10020", "A001", 10 }, new object[] { "10020", "A003", 30 }, new object[] { "10021", "A002", 25 }, new object[] { "10021", "C001", 50 }, new object[] { "10022", "B001", 5 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(_listener.IsInvoked); }
public void TestJoinCount() { string[] fields = "count(*)".Split(','); _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "select count(*) from " + "OrderEvent[books]#unique(bookId) book, " + "OrderEvent[orderdetail.items]#keepall item " + "where book.bookId = item.productId"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(stmtText); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new object[] { 3L }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { 3L } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventTwo()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "count(*)".Split(','), new object[] { 4L }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { 4L } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventThree()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "count(*)".Split(','), new object[] { 5L }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { 5L } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(_listener.IsInvoked); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), "count(*)".Split(','), new object[] { 8L }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { 8L } }); }
public void Run(RegressionEnvironment env) { var fields = new [] { "TheString","TotalPrice" }; var path = new RegressionPath(); env.CompileDeploy("create window OrderWindowNWS#lastevent as OrderBean", path); env.CompileDeploy("insert into OrderWindowNWS select * from OrderBean", path); var stmtText = "@Name('s0') select *, (select sum(Price) from OrderWindowNWS[Books]) as TotalPrice from SupportBean"; env.CompileDeploy(stmtText, path).AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); env.SendEventBean(new SupportBean("E1", 1)); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {"E1", 24d + 35d + 27d}}); env.Listener("s0").Reset(); env.SendEventBean(OrderBeanFactory.MakeEventFour()); env.SendEventBean(new SupportBean("E2", 2)); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {"E2", 15d + 13d}}); env.Listener("s0").Reset(); env.UndeployAll(); }
public void TestPropertyAccess() { _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); EPStatement stmtOne = _epService.EPAdministrator.CreateEPL("@IterableUnbound select bookId from OrderEvent[books]"); stmtOne.AddListener(_listener); EPStatement stmtTwo = _epService.EPAdministrator.CreateEPL("@IterableUnbound select books[0].author as val from OrderEvent(books[0].bookId = '10020')"); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, "bookId".Split(','), new object[][] { new[] { "10020" }, new[] { "10021" }, new[] { "10022" } }); _listener.Reset(); EPAssertionUtil.AssertPropsPerRow(stmtOne.GetEnumerator(), "bookId".Split(','), new object[][] { new[] { "10020" }, new[] { "10021" }, new[] { "10022" } }); EPAssertionUtil.AssertPropsPerRow(stmtTwo.GetEnumerator(), "val".Split(','), new object[][] { new[] { "Orson Scott Card" } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, "bookId".Split(','), new object[][] { new[] { "10031" }, new[] { "10032" } }); _listener.Reset(); EPAssertionUtil.AssertPropsPerRow(stmtOne.GetEnumerator(), "bookId".Split(','), new object[][] { new[] { "10031" }, new[] { "10032" } }); EPAssertionUtil.AssertPropsPerRow(stmtTwo.GetEnumerator(), "val".Split(','), new object[][] { new[] { "Orson Scott Card" } }); // add where clause stmtOne.Dispose(); stmtTwo.Dispose(); stmtOne = _epService.EPAdministrator.CreateEPL("select bookId from OrderEvent[books where author='Orson Scott Card']"); stmtOne.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, "bookId".Split(','), new object[][] { new[] { "10020" } }); _listener.Reset(); }
public void Run(RegressionEnvironment env) { var fields = new [] { "ReviewId" }; var path = new RegressionPath(); env.CompileDeploy("create window OrderWindowNWF#lastevent as OrderBean", path); env.CompileDeploy("insert into OrderWindowNWF select * from OrderBean", path); var stmtText = "@Name('s0') select ReviewId from OrderWindowNWF[Books][Reviews] bookReviews order by ReviewId asc"; env.CompileDeploy(stmtText, path).AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {1}, new object[] {2}, new object[] {10}}); env.Listener("s0").Reset(); env.SendEventBean(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {201}}); env.Listener("s0").Reset(); env.UndeployAll(); }
private void RunAssertionFromClauseBeginBodyEnd(bool soda) { String epl = "on OrderEvent " + "insert into BeginEvent select orderdetail.OrderId as OrderId " + "insert into OrderItem select * from [select orderdetail.OrderId as OrderId, * from orderdetail.Items] " + "insert into EndEvent select orderdetail.OrderId as OrderId " + "output all"; SupportModelHelper.CreateByCompileOrParse(_epService, soda, epl); _epService.EPAdministrator.CreateEPL("select * from BeginEvent").AddListener(_listeners[0]); _epService.EPAdministrator.CreateEPL("select * from OrderItem").AddListener(_listeners[1]); _epService.EPAdministrator.CreateEPL("select * from EndEvent").AddListener(_listeners[2]); EventType typeOrderItem = _epService.EPAdministrator.Configuration.GetEventType("OrderItem"); Assert.AreEqual("[Amount, ItemId, OrderId, Price, ProductId]", CompatExtensions.Render(Enumerable.OrderBy(typeOrderItem.PropertyNames, propName => propName))); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); AssertFromClauseWContained("PO200901", new Object[][] { new Object[] { "PO200901", "A001" }, new Object[] { "PO200901", "A002" }, new Object[] { "PO200901", "A003" } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventTwo()); AssertFromClauseWContained("PO200902", new Object[][] { new Object[] { "PO200902", "B001" } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); AssertFromClauseWContained("PO200904", new Object[0][]); _epService.EPAdministrator.DestroyAllStatements(); }
public void Run(RegressionEnvironment env) { var fields = new [] { "OrderId","BookId","ReviewId" }; var stmtText = "@Name('s0') select OrderDetail.OrderId as OrderId, BookFrag.BookId as BookId, reviewFrag.ReviewId as ReviewId " + "from OrderBean[Books as Book][select myorder.*, Book.* as BookFrag, Review.* as reviewFrag from Reviews as Review] as myorder"; env.CompileDeploy(stmtText).AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] { new object[] {"PO200901", "10020", 1}, new object[] {"PO200901", "10020", 2}, new object[] {"PO200901", "10021", 10} }); env.Listener("s0").Reset(); env.SendEventBean(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {"PO200904", "10031", 201}}); env.Listener("s0").Reset(); env.UndeployAll(); }
private void RunAssertionNamedWindowSubquery(EPServiceProvider epService) { string[] fields = "TheString,totalPrice".Split(','); epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); epService.EPAdministrator.CreateEPL("create window OrderWindowNWS#lastevent as OrderEvent"); epService.EPAdministrator.CreateEPL("insert into OrderWindowNWS select * from OrderEvent"); string stmtText = "select *, (select sum(price) from OrderWindowNWS[books]) as totalPrice from SupportBean"; EPStatement stmt = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); epService.EPRuntime.SendEvent(new SupportBean("E1", 1)); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "E1", 24d + 35d + 27d } }); listener.Reset(); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); epService.EPRuntime.SendEvent(new SupportBean("E2", 2)); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "E2", 15d + 13d } }); listener.Reset(); stmt.Dispose(); }
private void RunAssertionUnderlyingSelect(EPServiceProvider epService) { string[] fields = "orderId,bookId,reviewId".Split(','); epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "select orderdetail.orderId as orderId, bookFrag.bookId as bookId, reviewFrag.reviewId as reviewId " + //string stmtText = "select * " + "from OrderEvent[books as book][select myorder.*, book.* as bookFrag, review.* as reviewFrag from reviews as review] as myorder"; EPStatement stmt = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "PO200901", "10020", 1 }, new object[] { "PO200901", "10020", 2 }, new object[] { "PO200901", "10021", 10 } }); listener.Reset(); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "PO200904", "10031", 201 } }); listener.Reset(); stmt.Dispose(); }
private static void TryAssertionFromClauseOutputFirstWhere( RegressionEnvironment env, bool soda) { var path = new RegressionPath(); var fieldsOrderId = new[] {"oe.OrderDetail.OrderId"}; var epl = "on OrderBean as oe " + "insert into HeaderEvent select OrderDetail.OrderId as OrderId where 1=2 " + "insert into StreamOne select * from [select oe, * from OrderDetail.Items] where ProductId=\"10020\" " + "insert into StreamTwo select * from [select oe, * from OrderDetail.Items] where ProductId=\"10022\" " + "insert into StreamThree select * from [select oe, * from OrderDetail.Items] where ProductId in (\"10020\",\"10025\",\"10022\")"; env.CompileDeploy(soda, epl, path); var listeners = GetListeners(env); string[] listenerEPL = {"select * from StreamOne", "select * from StreamTwo", "select * from StreamThree"}; for (var i = 0; i < listenerEPL.Length; i++) { env.CompileDeploy("@Name('s" + i + "')" + listenerEPL[i], path).AddListener("s" + i, listeners[i]); listeners[i].Reset(); } env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertProps( listeners[0].AssertOneGetNewAndReset(), fieldsOrderId, new object[] {"PO200901"}); Assert.IsFalse(listeners[1].IsInvoked); Assert.IsFalse(listeners[2].IsInvoked); env.SendEventBean(OrderBeanFactory.MakeEventTwo()); Assert.IsFalse(listeners[0].IsInvoked); EPAssertionUtil.AssertProps( listeners[1].AssertOneGetNewAndReset(), fieldsOrderId, new object[] {"PO200902"}); Assert.IsFalse(listeners[2].IsInvoked); env.SendEventBean(OrderBeanFactory.MakeEventThree()); Assert.IsFalse(listeners[0].IsInvoked); Assert.IsFalse(listeners[1].IsInvoked); EPAssertionUtil.AssertProps( listeners[2].AssertOneGetNewAndReset(), fieldsOrderId, new object[] {"PO200903"}); env.SendEventBean(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(listeners[0].IsInvoked); Assert.IsFalse(listeners[1].IsInvoked); Assert.IsFalse(listeners[2].IsInvoked); env.UndeployAll(); }
private void RunAssertion() { string[] fields = "orderId,bookId,reviewId".Split(','); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "PO200901", "10020", 1 }, new object[] { "PO200901", "10020", 2 }, new object[] { "PO200901", "10021", 10 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "PO200904", "10031", 201 } }); _listener.Reset(); }
private void TryAssertionColumnSelect(EPServiceProvider epService, SupportUpdateListener listener) { string[] fields = "orderId,bookId,reviewId".Split(','); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "PO200901", "10020", 1 }, new object[] { "PO200901", "10020", 2 }, new object[] { "PO200901", "10021", 10 } }); listener.Reset(); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(listener.LastNewData, fields, new object[][] { new object[] { "PO200904", "10031", 201 } }); listener.Reset(); }
private void RunAssertion() { string[] fields = "orderEvent.orderdetail.orderId,book.bookId,book.title,item.amount".Split(','); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); Assert.AreEqual(3, _listener.LastNewData.Length); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "PO200901", "10020", "Enders Game", 10 }, new object[] { "PO200901", "10020", "Enders Game", 30 }, new object[] { "PO200901", "10021", "Foundation 1", 25 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventTwo()); Assert.AreEqual(1, _listener.LastNewData.Length); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "PO200902", "10022", "Stranger in a Strange Land", 5 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventThree()); Assert.AreEqual(1, _listener.LastNewData.Length); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { "PO200903", "10021", "Foundation 1", 50 } }); }
public void Run(RegressionEnvironment env) { var fields = new [] { "ReviewId" }; // try where in root var stmtText = "@Name('s0') select ReviewId from OrderBean[Books where Title = 'Enders Game'][Reviews] bookReviews order by ReviewId asc"; env.CompileDeploy(stmtText).AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {1}, new object[] {2}}); env.Listener("s0").Reset(); // try where in different levels env.UndeployAll(); stmtText = "@Name('s0') select ReviewId from OrderBean[Books where Title = 'Enders Game'][Reviews where ReviewId in (1, 10)] bookReviews order by ReviewId asc"; env.CompileDeploy(stmtText).AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {1}}); env.Listener("s0").Reset(); // try where in combination env.UndeployAll(); stmtText = "@Name('s0') select ReviewId from OrderBean[Books as bc][Reviews as rw where rw.ReviewId in (1, 10) and bc.Title = 'Enders Game'] bookReviews order by ReviewId asc"; env.CompileDeploy(stmtText).AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {1}}); env.Listener("s0").Reset(); Assert.IsFalse(env.Listener("s0").IsInvoked); env.UndeployAll(); }
public void TestAloneCount() { string[] fields = "count(*)".Split(','); _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "select count(*) from OrderEvent[books]"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(stmtText); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new object[] { 3L }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { 3L } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new object[] { 5L }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), fields, new object[][] { new object[] { 5L } }); }
private static void TryAssertionFromClauseBeginBodyEnd( RegressionEnvironment env, bool soda) { var path = new RegressionPath(); var epl = "@Name('split') on OrderBean " + "insert into BeginEvent select OrderDetail.OrderId as OrderId " + "insert into OrderItem select * from [select OrderDetail.OrderId as OrderId, * from OrderDetail.Items] " + "insert into EndEvent select OrderDetail.OrderId as OrderId " + "output all"; env.CompileDeploy(soda, epl, path); Assert.AreEqual( StatementType.ON_SPLITSTREAM, env.Statement("split").GetProperty(StatementProperty.STATEMENTTYPE)); var listeners = GetListeners(env); env.CompileDeploy("@Name('s0') select * from BeginEvent", path).AddListener("s0", listeners[0]); env.CompileDeploy("@Name('s1') select * from OrderItem", path).AddListener("s1", listeners[1]); env.CompileDeploy("@Name('s2') select * from EndEvent", path).AddListener("s2", listeners[2]); var orderItemType = env.Runtime.EventTypeService.GetEventType(env.DeploymentId("split"), "OrderItem"); Assert.AreEqual("[\"Amount\", \"ItemId\", \"Price\", \"ProductId\", \"OrderId\"]", orderItemType.PropertyNames.RenderAny()); env.SendEventBean(OrderBeanFactory.MakeEventOne()); AssertFromClauseWContained( listeners, "PO200901", new[] { new object[] {"PO200901", "A001"}, new object[] {"PO200901", "A002"}, new object[] {"PO200901", "A003"} }); env.SendEventBean(OrderBeanFactory.MakeEventTwo()); AssertFromClauseWContained( listeners, "PO200902", new[] {new object[] {"PO200902", "B001"}}); env.SendEventBean(OrderBeanFactory.MakeEventFour()); AssertFromClauseWContained(listeners, "PO200904", new object[0][]); env.UndeployAll(); }
public void TestSimple() { string[] fields = "reviewId".Split(','); _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "select reviewId from OrderEvent[books][reviews] bookReviews order by reviewId asc"; EPStatementSPI stmt = (EPStatementSPI)_epService.EPAdministrator.CreateEPL(stmtText); Assert.IsTrue(stmt.StatementContext.IsStatelessSelect); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { 1 }, new object[] { 2 }, new object[] { 10 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { 201 } }); _listener.Reset(); }
private void TryAssertionFromClauseOutputFirstWhere(EPServiceProvider epService, bool soda) { var fieldsOrderId = "oe.orderdetail.OrderId".Split(','); var epl = "on OrderEvent as oe " + "insert into HeaderEvent select orderdetail.OrderId as OrderId where 1=2 " + "insert into StreamOne select * from [select oe, * from orderdetail.Items] where productId=\"10020\" " + "insert into StreamTwo select * from [select oe, * from orderdetail.Items] where productId=\"10022\" " + "insert into StreamThree select * from [select oe, * from orderdetail.Items] where productId in (\"10020\",\"10025\",\"10022\")"; SupportModelHelper.CreateByCompileOrParse(epService, soda, epl); var listeners = GetListeners(); var listenerEPL = new[] { "select * from StreamOne", "select * from StreamTwo", "select * from StreamThree" }; for (var i = 0; i < listenerEPL.Length; i++) { epService.EPAdministrator.CreateEPL(listenerEPL[i]).Events += listeners[i].Update; listeners[i].Reset(); } epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertProps(listeners[0].AssertOneGetNewAndReset(), fieldsOrderId, new object[] { "PO200901" }); Assert.IsFalse(listeners[1].IsInvoked); Assert.IsFalse(listeners[2].IsInvoked); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventTwo()); Assert.IsFalse(listeners[0].IsInvoked); EPAssertionUtil.AssertProps(listeners[1].AssertOneGetNewAndReset(), fieldsOrderId, new object[] { "PO200902" }); Assert.IsFalse(listeners[2].IsInvoked); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventThree()); Assert.IsFalse(listeners[0].IsInvoked); Assert.IsFalse(listeners[1].IsInvoked); EPAssertionUtil.AssertProps(listeners[2].AssertOneGetNewAndReset(), fieldsOrderId, new object[] { "PO200903" }); epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); Assert.IsFalse(listeners[0].IsInvoked); Assert.IsFalse(listeners[1].IsInvoked); Assert.IsFalse(listeners[2].IsInvoked); epService.EPAdministrator.DestroyAllStatements(); }
private static void TryAssertionColumnSelect(RegressionEnvironment env) { var fields = new [] { "OrderId","BookId","ReviewId" }; env.SendEventBean(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] { new object[] {"PO200901", "10020", 1}, new object[] {"PO200901", "10020", 2}, new object[] {"PO200901", "10021", 10} }); env.Listener("s0").Reset(); env.SendEventBean(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow( env.Listener("s0").LastNewData, fields, new[] {new object[] {"PO200904", "10031", 201}}); env.Listener("s0").Reset(); }
public void TestIRStreamArrayItem() { _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); string stmtText = "@IterableUnbound select irstream bookId from OrderEvent[books[0]]"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(stmtText); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, "bookId".Split(','), new object[][] { new[] { "10020" } }); Assert.IsNull(_listener.LastOldData); _listener.Reset(); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), "bookId".Split(','), new object[][] { new[] { "10020" } }); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); Assert.IsNull(_listener.LastOldData); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, "bookId".Split(','), new object[][] { new[] { "10031" } }); _listener.Reset(); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), "bookId".Split(','), new object[][] { new[] { "10031" } }); }
public void TestNamedWindowFilter() { string[] fields = "reviewId".Split(','); _epService.EPAdministrator.Configuration.AddEventType("OrderEvent", typeof(OrderBean)); _epService.EPAdministrator.CreateEPL("create window OrderWindow#lastevent as OrderEvent"); _epService.EPAdministrator.CreateEPL("insert into OrderWindow select * from OrderEvent"); string stmtText = "select reviewId from OrderWindow[books][reviews] bookReviews order by reviewId asc"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(stmtText); stmt.AddListener(_listener); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventOne()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { 1 }, new object[] { 2 }, new object[] { 10 } }); _listener.Reset(); _epService.EPRuntime.SendEvent(OrderBeanFactory.MakeEventFour()); EPAssertionUtil.AssertPropsPerRow(_listener.LastNewData, fields, new object[][] { new object[] { 201 } }); _listener.Reset(); }
public void Run(RegressionEnvironment env) { env.CompileDeploy( "@Name('s0') select TheString from SupportBean S0 where " + "exists (select * from OrderBean[Books][Reviews]#unique(ReviewId) where ReviewId = S0.IntPrimitive)") .AddListener("s0"); env.SendEventBean(OrderBeanFactory.MakeEventOne()); env.SendEventBean(OrderBeanFactory.MakeEventFour()); env.SendEventBean(new SupportBean("E1", 1)); Assert.IsTrue(env.Listener("s0").GetAndClearIsInvoked()); env.SendEventBean(new SupportBean("E2", -1)); Assert.IsFalse(env.Listener("s0").GetAndClearIsInvoked()); env.SendEventBean(new SupportBean("E2", 201)); Assert.IsTrue(env.Listener("s0").GetAndClearIsInvoked()); env.UndeployAll(); }