public bool Call() { try { for (int loop = 0; loop < _numRepeats; loop++) { // Add assertListener var assertListener = new SupportMTUpdateListener(); LogUpdateListener logListener; if (_isEPL) { logListener = new LogUpdateListener(null); } else { logListener = new LogUpdateListener("a"); } ThreadLogUtil.Trace("adding listeners ", assertListener, logListener); _stmt.Events += assertListener.Update; _stmt.Events += logListener.Update; // send event Object theEvent = MakeEvent(); ThreadLogUtil.Trace("sending event ", theEvent); _engine.EPRuntime.SendEvent(theEvent); // Should have received one or more events, one of them must be mine EventBean[] newEvents = assertListener.GetNewDataListFlattened(); Assert.IsTrue(newEvents.Length >= 1, "No event received"); ThreadLogUtil.Trace("assert received, size is", newEvents.Length); bool found = false; for (int i = 0; i < newEvents.Length; i++) { Object underlying = newEvents[i].Underlying; if (!_isEPL) { underlying = newEvents[i].Get("a"); } if (underlying == theEvent) { found = true; } } Assert.IsTrue(found); assertListener.Reset(); // Remove assertListener ThreadLogUtil.Trace("removing assertListener"); _stmt.Events -= assertListener.Update; _stmt.Events -= logListener.Update; // Send another event theEvent = MakeEvent(); ThreadLogUtil.Trace("send non-matching event ", theEvent); _engine.EPRuntime.SendEvent(theEvent); // Make sure the event was not received newEvents = assertListener.GetNewDataListFlattened(); found = false; for (int i = 0; i < newEvents.Length; i++) { Object underlying = newEvents[i].Underlying; if (!_isEPL) { underlying = newEvents[i].Get("a"); } if (underlying == theEvent) { found = true; } } Assert.IsFalse(found); } } 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); } return(true); }
public object Call() { try { for (var loop = 0; loop < numRepeats; loop++) { foreach (var statement in statements) { var statementText = statement.Epl; var compiled = statement.Compiled; // Create EPL or pattern statement ThreadLogUtil.Trace("stmt create,", statementText); var deployed = runtime.DeploymentService.Deploy(compiled); ThreadLogUtil.Trace("stmt done,", statementText); // Add listener var listener = new SupportMTUpdateListener(); var logListener = new LogUpdateListener(null); ThreadLogUtil.Trace("adding listeners ", listener, logListener); deployed.Statements[0].AddListener(listener); deployed.Statements[0].AddListener(logListener); object theEvent = MakeEvent(); ThreadLogUtil.Trace("sending event ", theEvent); runtime.EventService.SendEventBean(theEvent, theEvent.GetType().Name); // Should have received one or more events, one of them must be mine var newEvents = listener.GetNewDataListFlattened(); Assert.IsTrue(newEvents.Length >= 1, "No event received"); ThreadLogUtil.Trace("assert received, size is", newEvents.Length); var found = false; for (var i = 0; i < newEvents.Length; i++) { var underlying = newEvents[i].Underlying; if (underlying == theEvent) { found = true; } } Assert.IsTrue(found); listener.Reset(); // Stopping statement, the event should not be received, another event may however ThreadLogUtil.Trace("stop statement"); runtime.DeploymentService.Undeploy(deployed.DeploymentId); theEvent = MakeEvent(); ThreadLogUtil.Trace("send non-matching event ", theEvent); runtime.EventService.SendEventBean(theEvent, theEvent.GetType().Name); // Make sure the event was not received newEvents = listener.GetNewDataListFlattened(); found = false; for (var i = 0; i < newEvents.Length; i++) { var underlying = newEvents[i].Underlying; if (underlying == theEvent) { found = true; } } Assert.IsFalse(found); } } } 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; } return true; }
public bool Call() { try { for (int loop = 0; loop < _numRepeats; loop++) { foreach (object[] statement in _statements) { bool isEPL = statement[0].AsBoolean(); string statementText = (string)statement[1]; // Create EPL or pattern statement EPStatement stmt; ThreadLogUtil.Trace("stmt create,", statementText); if (isEPL) { stmt = _engine.EPAdministrator.CreateEPL(statementText); } else { stmt = _engine.EPAdministrator.CreatePattern(statementText); } ThreadLogUtil.Trace("stmt done,", stmt); // Add listener var listener = new SupportMTUpdateListener(); LogUpdateListener logListener; if (isEPL) { logListener = new LogUpdateListener(null); } else { logListener = new LogUpdateListener("a"); } ThreadLogUtil.Trace("adding listeners ", listener, logListener); stmt.Events += listener.Update; stmt.Events += logListener.Update; Object theEvent = MakeEvent(); ThreadLogUtil.Trace("sending event ", theEvent); _engine.EPRuntime.SendEvent(theEvent); // Should have received one or more events, one of them must be mine EventBean[] newEvents = listener.GetNewDataListFlattened(); Assert.IsTrue(newEvents.Length >= 1, "No event received"); ThreadLogUtil.Trace("assert received, size is", newEvents.Length); bool found = false; for (int i = 0; i < newEvents.Length; i++) { var underlying = newEvents[i].Underlying; if (!isEPL) { underlying = newEvents[i].Get("a"); } if (underlying == theEvent) { found = true; } } Assert.IsTrue(found); listener.Reset(); // Stopping statement, the event should not be received, another event may however ThreadLogUtil.Trace("stop statement"); stmt.Stop(); theEvent = MakeEvent(); ThreadLogUtil.Trace("send non-matching event ", theEvent); _engine.EPRuntime.SendEvent(theEvent); // Make sure the event was not received newEvents = listener.GetNewDataListFlattened(); found = false; for (int i = 0; i < newEvents.Length; i++) { var underlying = newEvents[i].Underlying; if (!isEPL) { underlying = newEvents[i].Get("a"); } if (underlying == theEvent) { found = true; } } Assert.IsFalse(found); } } } 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); } return(true); }
public object Call() { try { for (var loop = 0; loop < numRepeats; loop++) { // Add assertListener var assertListener = new SupportMTUpdateListener(); LogUpdateListener logListener; if (isEPL) { logListener = new LogUpdateListener(null); } else { logListener = new LogUpdateListener("a"); } ThreadLogUtil.Trace("adding listeners ", assertListener, logListener); stmt.AddListener(assertListener); stmt.AddListener(logListener); // send event object theEvent = MakeEvent(); ThreadLogUtil.Trace("sending event ", theEvent); runtime.EventService.SendEventBean(theEvent, theEvent.GetType().Name); // Should have received one or more events, one of them must be mine var newEvents = assertListener.GetNewDataListFlattened(); ThreadLogUtil.Trace("assert received, size is", newEvents.Length); var found = false; for (var i = 0; i < newEvents.Length; i++) { var underlying = newEvents[i].Underlying; if (!isEPL) { underlying = newEvents[i].Get("a"); } if (underlying == theEvent) { found = true; } } Assert.IsTrue(found); assertListener.Reset(); // Remove assertListener ThreadLogUtil.Trace("removing assertListener"); stmt.RemoveListener(assertListener); stmt.RemoveListener(logListener); // Send another event theEvent = MakeEvent(); ThreadLogUtil.Trace("send non-matching event ", theEvent); runtime.EventService.SendEventBean(theEvent, theEvent.GetType().Name); // Make sure the event was not received newEvents = assertListener.GetNewDataListFlattened(); found = false; for (var i = 0; i < newEvents.Length; i++) { var underlying = newEvents[i].Underlying; if (!isEPL) { underlying = newEvents[i].Get("a"); } if (underlying == theEvent) { found = true; } } Assert.IsFalse(found); } } 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; } return true; }