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();
        }
Ejemplo n.º 2
0
        public void SetUp()
        {
            Configuration configuration = SupportConfigFactory.GetConfiguration();

            configuration.AddEventType("Bean", typeof(SupportBean));
            epService = EPServiceProviderManager.GetDefaultProvider(configuration);
            epService.Initialize();

            listener = new SupportStmtAwareUpdateListener();
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 5
0
        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 });
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
 public void TearDown()
 {
     listener = null;
 }
Ejemplo n.º 8
0
 public TwoPatternRunnable(EPServiceProvider engine)
 {
     _engine   = engine;
     _listener = new SupportStmtAwareUpdateListener();
 }