private void RunAssertionSelectIStream(EPServiceProvider epServiceRetained) { // set time to zero epServiceRetained.EPRuntime.SendEvent(new CurrentTimeEvent(0)); var stmtText = "select istream myvarchar from " + typeof(SupportBean_S0).FullName + "#time(1 sec) as s0," + " sql:MyDB ['select myvarchar from mytesttable where ${id} = mytesttable.mybigint'] as s1"; var statement = epServiceRetained.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); statement.Events += listener.Update; // Send 100 events which all fireStatementStopped a join for (var i = 0; i < 100; i++) { var bean = new SupportBean_S0(5); epServiceRetained.EPRuntime.SendEvent(bean); Assert.AreEqual("E", listener.AssertOneGetNewAndReset().Get("myvarchar")); } // now advance the time, this should not produce events or join var startTime = DateTimeHelper.CurrentTimeMillis; epServiceRetained.EPRuntime.SendEvent(new CurrentTimeEvent(2000)); var endTime = DateTimeHelper.CurrentTimeMillis; Log.Info(".testSelectIStream delta=" + (endTime - startTime)); Assert.IsTrue(endTime - startTime < 200); Assert.IsFalse(listener.IsInvoked); statement.Dispose(); }
private SupportBean_S0 MakeSendS0(int id, string p00) { var bean = new SupportBean_S0(id, p00); _epService.EPRuntime.SendEvent(bean); return(bean); }
public void TestSelectLargeResultSet() { String stmtText = "select id, mycol3, mycol2 from " + typeof(SupportBean_S0).FullName + ".win:keepall() as s0," + " sql:MyDB ['select mycol3, mycol2 from mytesttable_large'] as s1 where s0.id = s1.mycol3"; EPStatement statement = _epServiceRetained.EPAdministrator.CreateEPL(stmtText); _listener = new SupportUpdateListener(); statement.Events += _listener.Update; // Send 100 events which all perform the join long startTime = PerformanceObserver.MilliTime; for (int i = 0; i < 200; i++) { var num = i + 1; var col2 = Convert.ToString(Math.Round((float)num / 10, MidpointRounding.AwayFromZero)); var bean = new SupportBean_S0(num); _epServiceRetained.EPRuntime.SendEvent(bean); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), new String[] { "id", "mycol3", "mycol2" }, new Object[] { num, num, col2 }); } long endTime = PerformanceObserver.MilliTime; Log.Info("delta=" + (endTime - startTime)); Assert.IsTrue(endTime - startTime < 500); Assert.IsFalse(_listener.IsInvoked); }
public void TestSelectRStream() { String stmtText = "select rstream myvarchar from " + typeof(SupportBean_S0).FullName + ".win:length(1000) as s0," + " sql:MyDB ['select myvarchar from mytesttable where ${id} = mytesttable.mybigint'] as s1"; EPStatement statement = _epServiceRetained.EPAdministrator.CreateEPL(stmtText); _listener = new SupportUpdateListener(); statement.Events += _listener.Update; // 1000 events should enter the window fast, no joins long startTime = PerformanceObserver.MilliTime; for (int i = 0; i < 1000; i++) { SupportBean_S0 supportBean = new SupportBean_S0(10); _epServiceRetained.EPRuntime.SendEvent(supportBean); Assert.IsFalse(_listener.IsInvoked); } long endTime = PerformanceObserver.MilliTime; long delta = (endTime - startTime); Assert.IsTrue(endTime - startTime < 1000, "delta=" + delta); // 1001st event should finally join and produce a result SupportBean_S0 bean = new SupportBean_S0(10); _epServiceRetained.EPRuntime.SendEvent(bean); Assert.AreEqual("J", _listener.AssertOneGetNewAndReset().Get("myvarchar")); }
public void Test2PatternJoinWildcard() { String stmtText = "select * " + " from " + " pattern [every (es0=" + typeof(SupportBean_S0).FullName + " and es1=" + typeof(SupportBean_S1).FullName + ")].win:length(5) as s0," + " pattern [every (es2=" + typeof(SupportBean_S2).FullName + " and es3=" + typeof(SupportBean_S3).FullName + ")].win:length(5) as s1" + " where s0.es0.Id = s1.es2.Id"; EPStatement statement = epService.EPAdministrator.CreateEPL(stmtText); SupportUpdateListener updateListener = new SupportUpdateListener(); statement.Events += updateListener.Update; SupportBean_S0 s0 = SendEventS0(100, ""); SupportBean_S1 s1 = SendEventS1(1, ""); SupportBean_S2 s2 = SendEventS2(100, ""); SupportBean_S3 s3 = SendEventS3(2, ""); EventBean theEvent = updateListener.AssertOneGetNewAndReset(); var result = (IDictionary <String, Object>)theEvent.Get("s0"); Assert.AreSame(s0, ((EventBean)result.Get("es0")).Underlying); Assert.AreSame(s1, ((EventBean)result.Get("es1")).Underlying); result = (IDictionary <String, Object>)theEvent.Get("s1"); Assert.AreSame(s2, ((EventBean)result.Get("es2")).Underlying); Assert.AreSame(s3, ((EventBean)result.Get("es3")).Underlying); }
public void SetUp() { Configuration config = SupportConfigFactory.GetConfiguration(); config.EngineDefaults.LoggingConfig.IsEnableQueryPlan = true; _epService = EPServiceProviderManager.GetDefaultProvider(config); _epService.Initialize(); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.StartTest(_epService, GetType(), GetType().FullName); } _listener = new SupportUpdateListener(); _eventsS0 = new SupportBean_S0[15]; _eventsS1 = new SupportBean_S1[15]; int count = 100; for (int i = 0; i < _eventsS0.Length; i++) { _eventsS0[i] = new SupportBean_S0(count++, Convert.ToString(i)); } count = 200; for (int i = 0; i < _eventsS1.Length; i++) { _eventsS1[i] = new SupportBean_S1(count++, Convert.ToString(i)); } }
private static void RunAssertionSelectIStream( RegressionEnvironment env, string dbname) { // set time to zero env.AdvanceTime(0); var stmtText = "@Name('s0') select istream myvarchar from " + "SupportBean_S0#time(1 sec) as S0," + " sql:" + dbname + " ['select myvarchar from mytesttable where ${Id} = mytesttable.myBigint'] as S1"; env.CompileDeploy(stmtText).AddListener("s0"); // Send 100 events which all fireStatementStopped a join for (var i = 0; i < 100; i++) { var bean = new SupportBean_S0(5); env.SendEventBean(bean); Assert.AreEqual("E", env.Listener("s0").AssertOneGetNewAndReset().Get("myvarchar")); } // now advance the time, this should not produce events or join var startTime = PerformanceObserver.MilliTime; env.AdvanceTime(2000); var endTime = PerformanceObserver.MilliTime; // log.info(".testSelectIStream delta=" + (endTime - startTime)); Assert.IsTrue(endTime - startTime < 200); Assert.IsFalse(env.Listener("s0").IsInvoked); env.UndeployAll(); }
private static void RunAssertionSelectRStream( RegressionEnvironment env, string dbname) { var stmtText = "@Name('s0') select rstream myvarchar from " + "SupportBean_S0#length(1000) as S0," + " sql:" + dbname + "['select myvarchar from mytesttable where ${Id} = mytesttable.myBigint'] as S1"; env.CompileDeploy(stmtText).AddListener("s0"); // 1000 events should enter the window fast, no joins var startTime = PerformanceObserver.MilliTime; for (var i = 0; i < 1000; i++) { var beanX = new SupportBean_S0(10); env.SendEventBean(beanX); Assert.IsFalse(env.Listener("s0").IsInvoked); } var endTime = PerformanceObserver.MilliTime; var delta = endTime - startTime; Assert.IsTrue(endTime - startTime < 1000, "delta=" + delta); // 1001st event should finally join and produce a result var bean = new SupportBean_S0(10); env.SendEventBean(bean); Assert.AreEqual("J", env.Listener("s0").AssertOneGetNewAndReset().Get("myvarchar")); env.UndeployAll(); }
private static void TrySendEvents( RegressionEnvironment env, int numEvents, bool useRandomLookupKey) { var random = new Random(); var stmtText = "@Name('s0') select myint from " + "SupportBean_S0 as S0," + " sql:MyDB ['select myint from mytesttable where ${Id} = mytesttable.myBigint'] as S1"; env.CompileDeploy(stmtText).AddListener("s0"); log.Debug(".trySendEvents Sending " + numEvents + " events"); for (var i = 0; i < numEvents; i++) { var id = 0; if (useRandomLookupKey) { id = random.Next(1000); } else { id = i % 10 + 1; } var bean = new SupportBean_S0(id); env.SendEventBean(bean); if (!useRandomLookupKey || id >= 1 && id <= 10) { var received = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(id * 10, received.Get("myint")); } } log.Debug(".trySendEvents Stopping statement"); env.UndeployAll(); }
public void Run(RegressionEnvironment env) { var stmtText = "@Name('s0') select Id, mycol3, mycol2 from " + "SupportBean_S0#keepall as S0," + " sql:MyDBWithLRU100000 ['select mycol3, mycol2 from mytesttable_large'] as S1 where S0.Id = S1.mycol3"; env.CompileDeploy(stmtText).AddListener("s0"); // Send 100 events which all perform the join var startTime = PerformanceObserver.MilliTime; for (var i = 0; i < 200; i++) { var num = i + 1; var col2 = Convert.ToString(Math.Round((float) num / 10)); var bean = new SupportBean_S0(num); env.SendEventBean(bean); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), new[] {"Id", "mycol3", "mycol2"}, new object[] {num, num, col2}); } var endTime = PerformanceObserver.MilliTime; // log.info("delta=" + (endTime - startTime)); Assert.IsTrue(endTime - startTime < 500); Assert.IsFalse(env.Listener("s0").IsInvoked); env.UndeployAll(); }
public bool Call() { try { for (int loop = 0; loop < _numRepeats; loop++) { int id = _threadNum * 10000000 + loop; Object eventS0 = new SupportBean_S0(id); Object eventS1 = new SupportBean_S1(id); _engine.EPRuntime.SendEvent(eventS0); _engine.EPRuntime.SendEvent(eventS1); } return(true); } catch (AssertionException ex) { Log.Error("Assertion error in thread " + Thread.CurrentThread.ManagedThreadId, ex); return(false); } catch (Exception ex) { Log.Error("Error in thread " + Thread.CurrentThread.ManagedThreadId, ex); return(false); } }
private void RunAssertionWhereClauseNoIndexNoCache(EPServiceProvider epServiceRetained) { var stmtText = "select id, mycol3, mycol2 from " + typeof(SupportBean_S0).FullName + "#keepall as s0," + " sql:MyDB ['select mycol3, mycol2 from mytesttable_large'] as s1 where s0.id = s1.mycol3"; var statement = epServiceRetained.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); statement.Events += listener.Update; for (var i = 0; i < 20; i++) { var num = i + 1; var col2 = Convert.ToString(Math.Round((float)num / 10, MidpointRounding.AwayFromZero)); var bean = new SupportBean_S0(num); epServiceRetained.EPRuntime.SendEvent(bean); var testEventBean = listener.AssertOneGetNewAndReset(); EPAssertionUtil.AssertProps( testEventBean, new string[] { "id", "mycol3", "mycol2" }, new object[] { num, num, col2 }); } statement.Dispose(); }
public void TestSelectIStream() { // set time to zero _epServiceRetained.EPRuntime.SendEvent(new CurrentTimeEvent(0)); String stmtText = "select istream myvarchar from " + typeof(SupportBean_S0).FullName + ".win:time(1 sec) as s0," + " sql:MyDB ['select myvarchar from mytesttable where ${id} = mytesttable.mybigint'] as s1"; EPStatement statement = _epServiceRetained.EPAdministrator.CreateEPL(stmtText); _listener = new SupportUpdateListener(); statement.Events += _listener.Update; // Send 100 events which all fireStatementStopped a join for (int i = 0; i < 100; i++) { SupportBean_S0 bean = new SupportBean_S0(5); _epServiceRetained.EPRuntime.SendEvent(bean); Assert.AreEqual("E", _listener.AssertOneGetNewAndReset().Get("myvarchar")); } // now advance the time, this should not produce events or join long startTime = PerformanceObserver.MilliTime; _epServiceRetained.EPRuntime.SendEvent(new CurrentTimeEvent(2000)); long endTime = PerformanceObserver.MilliTime; Log.Info(".testSelectIStream delta=" + (endTime - startTime)); Assert.IsTrue(endTime - startTime < 200); Assert.IsFalse(_listener.IsInvoked); }
/** * Test for selecting from a table a large result set and then joining the result outside of the cache. * Verifies performance of indexes cached for resolving join criteria fast. * * @param epService */ private void RunAssertionSelectLargeResultSet(EPServiceProvider epService) { var stmtText = "select id, mycol3, mycol2 from " + typeof(SupportBean_S0).FullName + "#keepall as s0," + " sql:MyDB ['select mycol3, mycol2 from mytesttable_large'] as s1 where s0.id = s1.mycol3"; var statement = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); statement.AddListener(listener); // Send 100 events which all perform the join var startTime = PerformanceObserver.MilliTime; for (var i = 0; i < 200; i++) { var num = i + 1; var col2 = Convert.ToString(Math.Round((float)num / 10, MidpointRounding.AwayFromZero), CultureInfo.InvariantCulture); var bean = new SupportBean_S0(num); epService.EPRuntime.SendEvent(bean); EPAssertionUtil.AssertProps( listener.AssertOneGetNewAndReset(), new string[] { "id", "mycol3", "mycol2" }, new object[] { num, num, col2 }); } var endTime = PerformanceObserver.MilliTime; Log.Info("delta=" + (endTime - startTime)); Assert.IsTrue(endTime - startTime < 500); Assert.IsFalse(listener.IsInvoked); statement.Dispose(); }
private SupportBean_S0 SendEventS0(int id, String p00) { SupportBean_S0 theEvent = new SupportBean_S0(id, p00); _epService.EPRuntime.SendEvent(theEvent); return(theEvent); }
private void RunAssertionSelectRStream(EPServiceProvider epServiceRetained) { var stmtText = "select rstream myvarchar from " + typeof(SupportBean_S0).FullName + "#length(1000) as s0," + " sql:MyDB ['select myvarchar from mytesttable where ${id} = mytesttable.mybigint'] as s1"; var statement = epServiceRetained.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); statement.Events += listener.Update; // 1000 events should enter the window fast, no joins var startTime = DateTimeHelper.CurrentTimeMillis; for (var i = 0; i < 1000; i++) { var beanX = new SupportBean_S0(10); epServiceRetained.EPRuntime.SendEvent(beanX); Assert.IsFalse(listener.IsInvoked); } var endTime = DateTimeHelper.CurrentTimeMillis; var delta = endTime - startTime; Assert.IsTrue(endTime - startTime < 1000, "delta=" + delta); // 1001st event should finally join and produce a result var bean = new SupportBean_S0(10); epServiceRetained.EPRuntime.SendEvent(bean); Assert.AreEqual("J", listener.AssertOneGetNewAndReset().Get("myvarchar")); statement.Dispose(); }
private static void SendEventS0( RegressionEnvironment env, int id) { var bean = new SupportBean_S0(id); env.SendEventBean(bean); }
private SupportBean_S0 SendEventS0(EPServiceProvider epService, int id, string p00) { var theEvent = new SupportBean_S0(id, p00); epService.EPRuntime.SendEvent(theEvent); return(theEvent); }
public void Run(RegressionEnvironment env) { SetupStatement(env, "where S0.P01 = S1.P11 or S1.P11 is null"); var eventS0 = new SupportBean_S0(0, "0", "[a]"); SendEvent(eventS0, env); CompareEvent(env.Listener("s0").AssertOneGetNewAndReset(), eventS0, null); // Send events to test the join for multiple rows incl. null value var s1Bean1 = new SupportBean_S1(1000, "5", "X"); var s1Bean2 = new SupportBean_S1(1001, "5", "Y"); var s1Bean3 = new SupportBean_S1(1002, "5", "X"); var s1Bean4 = new SupportBean_S1(1003, "5", null); var s0 = new SupportBean_S0(1, "5", "X"); SendEvent( env, new object[] {s1Bean1, s1Bean2, s1Bean3, s1Bean4, s0}); Assert.AreEqual(3, env.Listener("s0").LastNewData.Length); var received = new object[3]; for (var i = 0; i < 3; i++) { Assert.AreSame(s0, env.Listener("s0").LastNewData[i].Get("S0")); received[i] = env.Listener("s0").LastNewData[i].Get("S1"); } EPAssertionUtil.AssertEqualsAnyOrder(new object[] {s1Bean1, s1Bean3, s1Bean4}, received); env.UndeployAll(); }
public void TestWhereJoinOrNull() { SetupStatement("where s0.p01 = s1.p11 or s1.p11 is null"); // Send S0[0] p01=a _eventsS0[0].P01 = "[a]"; SendEvent(_eventsS0[0]); CompareEvent(_updateListener.AssertOneGetNewAndReset(), _eventsS0[0], null); // Send events to test the join for multiple rows incl. null value SupportBean_S1 s1_1 = new SupportBean_S1(1000, "5", "X"); SupportBean_S1 s1_2 = new SupportBean_S1(1001, "5", "Y"); SupportBean_S1 s1_3 = new SupportBean_S1(1002, "5", "X"); SupportBean_S1 s1_4 = new SupportBean_S1(1003, "5", null); SupportBean_S0 s0 = new SupportBean_S0(1, "5", "X"); SendEvent(new Object[] { s1_1, s1_2, s1_3, s1_4, s0 }); Assert.AreEqual(3, _updateListener.LastNewData.Length); Object[] received = new Object[3]; for (int i = 0; i < 3; i++) { Assert.AreSame(s0, _updateListener.LastNewData[i].Get("s0")); received[i] = _updateListener.LastNewData[i].Get("s1"); } EPAssertionUtil.AssertEqualsAnyOrder(new Object[] { s1_1, s1_3, s1_4 }, received); }
private void RunAssertionWhereJoinOrNull(EPServiceProvider epService) { EPStatement stmt = SetupStatement(epService, "where s0.p01 = s1.p11 or s1.p11 is null"); var updateListener = new SupportUpdateListener(); stmt.Events += updateListener.Update; var eventS0 = new SupportBean_S0(0, "0", "[a]"); SendEvent(eventS0, epService); CompareEvent(updateListener.AssertOneGetNewAndReset(), eventS0, null); // Send events to test the join for multiple rows incl. null value var s1_1 = new SupportBean_S1(1000, "5", "X"); var s1_2 = new SupportBean_S1(1001, "5", "Y"); var s1_3 = new SupportBean_S1(1002, "5", "X"); var s1_4 = new SupportBean_S1(1003, "5", null); var s0 = new SupportBean_S0(1, "5", "X"); SendEvent(epService, new object[] { s1_1, s1_2, s1_3, s1_4, s0 }); Assert.AreEqual(3, updateListener.LastNewData.Length); var received = new Object[3]; for (int i = 0; i < 3; i++) { Assert.AreSame(s0, updateListener.LastNewData[i].Get("s0")); received[i] = updateListener.LastNewData[i].Get("s1"); } EPAssertionUtil.AssertEqualsAnyOrder(new object[] { s1_1, s1_3, s1_4 }, received); stmt.Dispose(); }
public void TestSelectPublicTypeAndUnderlying() { AtomicLong currentTime = new AtomicLong(0); _epService.EPRuntime.SendEvent(new CurrentTimeEvent(currentTime.Get())); _epService.EPAdministrator.CreateEPL("@Name('create') create table MyTable as (\n" + "key string primary key,\n" + "totalInt sum(int),\n" + "p0 string,\n" + "winsb window(*) @type(SupportBean),\n" + "totalLong sum(long),\n" + "p1 string,\n" + "winsb0 window(*) @type(SupportBean_S0)\n" + ")"); object[][] expectedType = new object[][] { new object[] { "key", typeof(string) }, new object[] { "totalInt", typeof(int?) }, new object[] { "p0", typeof(string) }, new object[] { "winsb", typeof(SupportBean[]) }, new object[] { "totalLong", typeof(long?) }, new object[] { "p1", typeof(string) }, new object[] { "winsb0", typeof(SupportBean_S0[]) }, }; _epService.EPAdministrator.CreateEPL("into table MyTable " + "select sum(IntPrimitive) as totalInt, sum(LongPrimitive) as totalLong," + "window(*) as winsb from SupportBean.win:keepall() group by TheString"); _epService.EPAdministrator.CreateEPL("into table MyTable " + "select window(*) as winsb0 from SupportBean_S0.win:keepall() group by p00"); _epService.EPAdministrator.CreateEPL("on SupportBean_S1 " + "merge MyTable where p10 = key when matched then " + "update set p0 = p11, p1 = p12"); SupportBean e1_sb = MakeSupportBean("G1", 10, 100); _epService.EPRuntime.SendEvent(e1_sb); // update some aggs SupportBean_S0 e2_sb0 = new SupportBean_S0(5, "G1"); _epService.EPRuntime.SendEvent(e2_sb0); // update more aggs _epService.EPRuntime.SendEvent(new SupportBean_S1(6, "G1", "a", "b")); // merge more values object[] rowValues = { "G1", 10, "a", new SupportBean[] { e1_sb }, 100L, "b", new SupportBean_S0[] { e2_sb0 } }; RunAssertionSubqueryWindowAgg(rowValues); RunAssertionOnSelectWindowAgg(expectedType, rowValues); RunAssertionSubquerySelectStar(rowValues); RunAssertionSubquerySelectWEnumMethod(rowValues); RunAssertionIterateCreateTable(expectedType, rowValues, _epService.EPAdministrator.GetStatement("create")); RunAssertionJoinSelectStar(expectedType, rowValues); RunAssertionJoinSelectStreamName(expectedType, rowValues); RunAssertionJoinSelectStreamStarNamed(expectedType, rowValues); RunAssertionJoinSelectStreamStarUnnamed(expectedType, rowValues); RunAssertionInsertIntoBean(rowValues); RunAssertionSingleRowFunc(rowValues); RunAssertionOutputSnapshot(expectedType, rowValues, currentTime); RunAssertionFireAndForgetSelectStar(expectedType, rowValues); RunAssertionFireAndForgetInsertUpdateDelete(expectedType); }
private static void SendEvent( RegressionEnvironment env, int id, string p00) { var theEvent = new SupportBean_S0(id, p00); env.SendEventBean(theEvent); }
private static void CompareEvent( EventBean receivedEvent, SupportBean_S0 expectedS0, SupportBean_S1 expectedS1) { Assert.AreSame(expectedS0, receivedEvent.Get("S0")); Assert.AreSame(expectedS1, receivedEvent.Get("S1")); }
public static MyEvent Transpose(SupportBean_S0 bean) { return new MyEvent( bean.Id, bean.P00.Equals("true"), bean.P01.Equals("true"), bean.P02.Equals("true")); }
private static SupportBean_S0 SendEventS0( RegressionEnvironment env, int id, string p00) { var theEvent = new SupportBean_S0(id, p00); env.SendEventBean(theEvent); return theEvent; }
public void SetUp() { buffer = new PriorEventBufferUnbound(3); events = new EventBean[100]; for (int i = 0; i < events.Length; i++) { SupportBean_S0 bean = new SupportBean_S0(i); events[i] = SupportEventBeanFactory.CreateObject(bean); } }
public void SetUp() { buffer = new PriorEventBufferSingle(3); events = new EventBean[100]; for (var i = 0; i < events.Length; i++) { var bean = new SupportBean_S0(i); events[i] = SupportEventBeanFactory.CreateObject(supportEventTypeFactory, bean); } }
public void SetUp() { int[] indexes = new int[] { 1, 3 }; buffer = new PriorEventBufferMulti(indexes); events = new EventBean[100]; for (int i = 0; i < events.Length; i++) { SupportBean_S0 bean = new SupportBean_S0(i); events[i] = SupportEventBeanFactory.CreateObject(bean); } }
public void TestBeanJoin() { // test wildcard var stmtTextOne = "insert into SupportBeanObject select * from SupportBean_N.std:lastevent() as One, SupportBean_S0.std:lastevent() as Two"; var stmtOne = _epService.EPAdministrator.CreateEPL(stmtTextOne); stmtOne.Events += _listener.Update; var n1 = new SupportBean_N(1, 10, 100d, 1000d, true, true); _epService.EPRuntime.SendEvent(n1); var s01 = new SupportBean_S0(1); _epService.EPRuntime.SendEvent(s01); var theEvent = (SupportBeanObject)_listener.AssertOneGetNewAndReset().Underlying; Assert.AreSame(n1, theEvent.One); Assert.AreSame(s01, theEvent.Two); // test select stream names stmtOne.Dispose(); stmtTextOne = "insert into SupportBeanObject select One, Two from SupportBean_N.std:lastevent() as One, SupportBean_S0.std:lastevent() as Two"; stmtOne = _epService.EPAdministrator.CreateEPL(stmtTextOne); stmtOne.Events += _listener.Update; _epService.EPRuntime.SendEvent(n1); _epService.EPRuntime.SendEvent(s01); theEvent = (SupportBeanObject)_listener.AssertOneGetNewAndReset().Underlying; Assert.AreSame(n1, theEvent.One); Assert.AreSame(s01, theEvent.Two); stmtOne.Dispose(); // test fully-qualified class name as target stmtTextOne = "insert into " + typeof(SupportBeanObject).FullName + " select One, Two from SupportBean_N.std:lastevent() as One, SupportBean_S0.std:lastevent() as Two"; stmtOne = _epService.EPAdministrator.CreateEPL(stmtTextOne); stmtOne.Events += _listener.Update; _epService.EPRuntime.SendEvent(n1); _epService.EPRuntime.SendEvent(s01); theEvent = (SupportBeanObject)_listener.AssertOneGetNewAndReset().Underlying; Assert.AreSame(n1, theEvent.One); Assert.AreSame(s01, theEvent.Two); // test local class and auto-import stmtOne.Dispose(); stmtTextOne = "insert into `" + typeof(MyLocalTarget).FullName + "` select 1 as Value from SupportBean_N"; stmtOne = _epService.EPAdministrator.CreateEPL(stmtTextOne); stmtOne.Events += _listener.Update; _epService.EPRuntime.SendEvent(n1); var eventLocal = (MyLocalTarget)_listener.AssertOneGetNewAndReset().Underlying; Assert.AreEqual(1, eventLocal.Value); }