private static void RunNonCompileAssertion( int assertionNumber, EventType eventType, IDictionary <string, ExprEvaluator> nodes, SupportEvalAssertionPair assertion, RegressionEnvironment env, SupportEvalBuilder builder) { EventBean theEvent; if (assertion.Underlying is IDictionary <string, object> ) { theEvent = new MapEventBean((IDictionary <string, object>)assertion.Underlying, eventType); } else { if (eventType.UnderlyingType != assertion.Underlying) { eventType = GetSubtype(assertion.Underlying, env); } theEvent = new BeanEventBean(assertion.Underlying, eventType); } var eventsPerStream = new EventBean[] { theEvent }; foreach (var expected in assertion.Builder.Results) { if (builder.ExcludeNamesExcept != null && !builder.ExcludeNamesExcept.Equals(expected.Key)) { continue; } var eval = nodes.Get(expected.Key); object result = null; try { result = eval.Evaluate(eventsPerStream, true, null); } catch (Exception ex) { Console.WriteLine("Failed at expression " + expected.Key + " at event #" + assertionNumber); for (Exception exx = ex; exx != null; exx = exx.InnerException) { Console.WriteLine(">> {0}", exx.GetType().CleanName()); Console.WriteLine("--------------------"); Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace.ToString()); } Log.Error("Failed at expression " + expected.Key + " at event #" + assertionNumber, ex); Assert.Fail(); } DoAssert(false, assertionNumber, expected.Key, expected.Value, result); } }
private static void RunEPLAssertion( int assertionNumber, string eventType, RegressionEnvironment env, SupportEvalAssertionPair assertion, SupportEvalBuilder builder) { if (assertion.Underlying is IDictionary <string, object> ) { var underlying = (IDictionary <string, object>)assertion.Underlying; env.SendEventMap(underlying, eventType); if (builder.IsLogging) { Log.Info("Sending event: " + underlying); } } else { env.SendEventBean(assertion.Underlying); if (builder.IsLogging) { Log.Info("Sending event: " + assertion.Underlying); } } var @event = env.Listener("s0").AssertOneGetNewAndReset(); if (builder.IsLogging) { Log.Info("Received event: " + EventBeanUtility.PrintEvent(@event)); } foreach (var expected in assertion.Builder.Results) { var name = expected.Key; if (builder.ExcludeNamesExcept != null && !builder.ExcludeNamesExcept.Equals(name)) { continue; } var actual = @event.Get(name); DoAssert(true, assertionNumber, expected.Key, expected.Value, actual); } }