/// <summary> /// Test route of multiple events within a listener. /// The Listener when it receives an event will generate multiple new events /// that it routes back into the runtime, up to X number of times. /// </summary> /// <param name="epService">The ep service.</param> private void RunAssertionRouteCascade(EPServiceProvider epService) { var epl = "every tag=" + typeof(SupportBean).FullName; var patternStmt = epService.EPAdministrator.CreatePattern(epl); var listener = new CascadeRouteUpdateListener(epService, RouteEvent); patternStmt.Events += listener.Update; // Send first event that triggers the loop sendEvent(epService, 2); // the 2 translates to number of new events routed // Should have fired X times Assert.AreEqual(9, listener.CountReceived); Assert.AreEqual(8, listener.CountRouted); // Num Received Routes Num // 2 1 2 3 // 3 2 6 4 // 4 6 - }
public void Run(RegressionEnvironment env) { var epl = "@Name('s0') select * from pattern[every tag=SupportBean]"; env.CompileDeploy(epl); var listener = new CascadeRouteUpdateListener(env.Runtime); env.Statement("s0").AddListener(listener); // Send first event that triggers the loop SendEvent(env.Runtime, 2); // the 2 translates to number of new events routed // Should have fired X times Assert.AreEqual(9, listener.CountReceived); Assert.AreEqual(8, listener.CountRouted); // Num Received Routes Num // 2 1 2 3 // 3 2 6 4 // 4 6 - env.UndeployAll(); }
public void TestRouteCascade() { String viewExpr = "every tag=" + typeof(SupportBean).FullName; EPStatement patternStmt = _epService.EPAdministrator.CreatePattern(viewExpr); CascadeRouteUpdateListener listener = new CascadeRouteUpdateListener { RouteEvent = RouteEvent }; patternStmt.Events += listener.Update; // Send first event that triggers the loop SendEvent(2); // the 2 translates to number of new events routed // Should have fired X times Assert.AreEqual(9, listener.CountReceived); Assert.AreEqual(8, listener.CountRouted); // Num Received Routes Num // 2 1 2 3 // 3 2 6 4 // 4 6 - }