Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }