private void RunAssertionUseOnMultipleStmts(EPServiceProvider epService) { EPStatement statementOne = epService.EPAdministrator.CreateEPL("select * from Bean(TheString='A' or TheString='C')"); EPStatement statementTwo = epService.EPAdministrator.CreateEPL("select * from Bean(TheString='B' or TheString='C')"); var awareListener = new SupportStmtAwareUpdateListener(); statementOne.Events += awareListener.Update; statementTwo.Events += awareListener.Update; epService.EPRuntime.SendEvent(new SupportBean("B", 1)); Assert.AreEqual("B", awareListener.AssertOneGetNewAndReset().Get("TheString")); epService.EPRuntime.SendEvent(new SupportBean("A", 1)); Assert.AreEqual("A", awareListener.AssertOneGetNewAndReset().Get("TheString")); epService.EPRuntime.SendEvent(new SupportBean("C", 1)); Assert.AreEqual(2, awareListener.NewDataList.Count); Assert.AreEqual("C", awareListener.NewDataList[0][0].Get("TheString")); Assert.AreEqual("C", awareListener.NewDataList[1][0].Get("TheString")); EPStatement[] stmts = awareListener.StatementList.ToArray(); EPAssertionUtil.AssertEqualsAnyOrder(stmts, new object[] { statementOne, statementTwo }); epService.EPAdministrator.DestroyAllStatements(); }
public void SetUp() { Configuration configuration = SupportConfigFactory.GetConfiguration(); configuration.AddEventType("Bean", typeof(SupportBean)); epService = EPServiceProviderManager.GetDefaultProvider(configuration); epService.Initialize(); listener = new SupportStmtAwareUpdateListener(); }
private void RunAssertionSimpleSelectUpdateOnly(EPServiceProvider epService) { var subscriber = new SupportSubscriberRowByRowSpecificNStmt(); var stmt = epService.EPAdministrator.CreateEPL("select TheString, IntPrimitive from " + typeof(SupportBean).FullName + "#lastevent"); stmt.Subscriber = subscriber; // get statement, attach listener var listener = new SupportUpdateListener(); stmt.Events += listener.Update; // send event epService.EPRuntime.SendEvent(new SupportBean("E1", 100)); subscriber.AssertOneReceivedAndReset(stmt, new object[] { "E1", 100 }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), FIELDS, new object[][] { new object[] { "E1", 100 } }); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), FIELDS, new object[] { "E1", 100 }); // remove listener stmt.RemoveAllEventHandlers(); // send event epService.EPRuntime.SendEvent(new SupportBean("E2", 200)); subscriber.AssertOneReceivedAndReset(stmt, new object[] { "E2", 200 }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), FIELDS, new object[][] { new object[] { "E2", 200 } }); Assert.IsFalse(listener.IsInvoked); // add listener var stmtAwareListener = new SupportStmtAwareUpdateListener(); stmt.Events += stmtAwareListener.Update; // send event epService.EPRuntime.SendEvent(new SupportBean("E3", 300)); subscriber.AssertOneReceivedAndReset(stmt, new object[] { "E3", 300 }); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), FIELDS, new object[][] { new object[] { "E3", 300 } }); EPAssertionUtil.AssertProps(stmtAwareListener.AssertOneGetNewAndReset(), FIELDS, new object[] { "E3", 300 }); // subscriber with EPStatement in the footprint stmt.RemoveAllEventHandlers(); var subsWithStatement = new SupportSubscriberRowByRowSpecificWStmt(); stmt.Subscriber = subsWithStatement; epService.EPRuntime.SendEvent(new SupportBean("E10", 999)); subsWithStatement.AssertOneReceivedAndReset(stmt, new object[] { "E10", 999 }); stmt.Dispose(); }
private void RunAssertionStmtAware(EPServiceProvider epService) { string stmtText = "select * from Bean"; EPStatement statement = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportStmtAwareUpdateListener(); statement.Events += listener.Update; epService.EPRuntime.SendEvent(new SupportBean()); Assert.IsTrue(listener.IsInvoked); Assert.AreEqual(1, listener.StatementList.Count); Assert.AreEqual(statement, listener.StatementList[0]); Assert.AreEqual(1, listener.SvcProviderList.Count); Assert.AreEqual(epService, listener.SvcProviderList[0]); statement.Dispose(); }
public void TestSimpleSelectUpdateOnly() { MySubscriberRowByRowSpecific subscriber = new MySubscriberRowByRowSpecific(); EPStatement stmt = _epService.EPAdministrator.CreateEPL("select TheString, IntPrimitive from " + typeof(SupportBean).FullName + ".std:lastevent()"); stmt.Subscriber = subscriber; // get statement, attach listener SupportUpdateListener listener = new SupportUpdateListener(); stmt.Events += listener.Update; // send event _epService.EPRuntime.SendEvent(new SupportBean("E1", 100)); EPAssertionUtil.AssertEqualsExactOrder(new Object[][] { new Object[] { "E1", 100 } }, subscriber.GetAndResetIndicate()); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), _fields, new Object[][] { new Object[] { "E1", 100 } }); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), _fields, new Object[] { "E1", 100 }); // remove listener stmt.RemoveAllEventHandlers(); // send event _epService.EPRuntime.SendEvent(new SupportBean("E2", 200)); EPAssertionUtil.AssertEqualsExactOrder(new Object[][] { new Object[] { "E2", 200 } }, subscriber.GetAndResetIndicate()); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), _fields, new Object[][] { new Object[] { "E2", 200 } }); Assert.IsFalse(listener.IsInvoked); // add listener SupportStmtAwareUpdateListener stmtAwareListener = new SupportStmtAwareUpdateListener(); stmt.Events += stmtAwareListener.Update; // send event _epService.EPRuntime.SendEvent(new SupportBean("E3", 300)); EPAssertionUtil.AssertEqualsExactOrder(new Object[][] { new Object[] { "E3", 300 } }, subscriber.GetAndResetIndicate()); EPAssertionUtil.AssertPropsPerRow(stmt.GetEnumerator(), _fields, new Object[][] { new Object[] { "E3", 300 } }); EPAssertionUtil.AssertProps(stmtAwareListener.AssertOneGetNewAndReset(), _fields, new Object[] { "E3", 300 }); }
public void TestBothListeners() { String stmtText = "select * from Bean"; EPStatement statement = epService.EPAdministrator.CreateEPL(stmtText); SupportStmtAwareUpdateListener[] awareListeners = new SupportStmtAwareUpdateListener[3]; SupportUpdateListener[] updateListeners = new SupportUpdateListener[awareListeners.Length]; for (int i = 0; i < awareListeners.Length; i++) { awareListeners[i] = new SupportStmtAwareUpdateListener(); statement.Events += awareListeners[i].Update; updateListeners[i] = new SupportUpdateListener(); statement.Events += updateListeners[i].Update; } Object theEvent = new SupportBean(); epService.EPRuntime.SendEvent(theEvent); for (int i = 0; i < awareListeners.Length; i++) { Assert.AreSame(theEvent, updateListeners[i].AssertOneGetNewAndReset().Underlying); Assert.AreSame(theEvent, awareListeners[i].AssertOneGetNewAndReset().Underlying); } statement.Events -= awareListeners[1].Update; theEvent = new SupportBean(); epService.EPRuntime.SendEvent(theEvent); for (int i = 0; i < awareListeners.Length; i++) { if (i == 1) { Assert.AreSame(theEvent, updateListeners[i].AssertOneGetNewAndReset().Underlying); Assert.IsFalse(awareListeners[i].IsInvoked); } else { Assert.AreSame(theEvent, updateListeners[i].AssertOneGetNewAndReset().Underlying); Assert.AreSame(theEvent, awareListeners[i].AssertOneGetNewAndReset().Underlying); } } statement.Events -= updateListeners[1].Update; theEvent = new SupportBean(); epService.EPRuntime.SendEvent(theEvent); for (int i = 0; i < awareListeners.Length; i++) { if (i == 1) { Assert.IsFalse(updateListeners[i].IsInvoked); Assert.IsFalse(awareListeners[i].IsInvoked); } else { Assert.AreSame(theEvent, updateListeners[i].AssertOneGetNewAndReset().Underlying); Assert.AreSame(theEvent, awareListeners[i].AssertOneGetNewAndReset().Underlying); } } statement.Events += updateListeners[1].Update; statement.Events += awareListeners[1].Update; theEvent = new SupportBean(); epService.EPRuntime.SendEvent(theEvent); for (int i = 0; i < awareListeners.Length; i++) { Assert.AreSame(theEvent, updateListeners[i].AssertOneGetNewAndReset().Underlying); Assert.AreSame(theEvent, awareListeners[i].AssertOneGetNewAndReset().Underlying); } statement.RemoveAllEventHandlers(); for (int i = 0; i < awareListeners.Length; i++) { Assert.IsFalse(updateListeners[i].IsInvoked); Assert.IsFalse(awareListeners[i].IsInvoked); } }
public void TearDown() { listener = null; }
public TwoPatternRunnable(EPServiceProvider engine) { _engine = engine; _listener = new SupportStmtAwareUpdateListener(); }