private void RunAssertion(EPServiceProvider epService,
                                  string typename,
                                  FunctionSendEvent send,
                                  object underlying)
        {
            RunAssertionTypeValidProp(epService, typename, underlying);
            RunAssertionTypeInvalidProp(epService, typename);

            string stmtText = "select * from " + typename;

            EPStatement stmt     = epService.EPAdministrator.CreateEPL(stmtText);
            var         listener = new SupportUpdateListener();

            stmt.Events += listener.Update;

            send.Invoke(epService, underlying);
            EventBean @event = listener.AssertOneGetNewAndReset();

            EventPropertyGetterMapped mappedGetter = @event.EventType.GetGetterMapped("mapped");

            Assert.AreEqual("v1", mappedGetter.Get(@event, "k1"));

            EventPropertyGetterIndexed indexedGetter = @event.EventType.GetGetterIndexed("indexed");

            Assert.AreEqual("v2", indexedGetter.Get(@event, 1));

            RunAssertionEventInvalidProp(@event);
            SupportEventTypeAssertionUtil.AssertConsistency(@event);

            stmt.Dispose();
        }
        public object Evaluate(EvaluateParams evaluateParams)
        {
            var key             = (String)_paramEval.Evaluate(evaluateParams);
            var eventInQuestion = evaluateParams.EventsPerStream[_streamId];

            return(eventInQuestion == null ? null : _mappedGetter.Get(eventInQuestion, key));
        }
        public override Object Evaluate(EvaluateParams evaluateParams)
        {
            var eventInQuestion = evaluateParams.EventsPerStream[StreamNum];

            if (eventInQuestion == null)
            {
                return(null);
            }
            var result = ExprEvaluator.Evaluate(evaluateParams);

            if (result != null && (!(result is String)))
            {
                Log.Warn(GetWarningText("string", result));
                return(null);
            }
            return(_mappedGetter.Get(eventInQuestion, (String)result));
        }
Esempio n. 4
0
        public EventPropertyGetterMapped GetGetterMapped(String mappedProperty)
        {
            EventPropertyGetterMapped undMapped = _underlyingEventType.GetGetterMapped(mappedProperty);

            if (undMapped != null)
            {
                return(new ProxyEventPropertyGetterMapped
                {
                    ProcGet = (theEvent, mapKey) =>
                    {
                        if (!(theEvent is DecoratingEventBean))
                        {
                            throw new PropertyAccessException("Mismatched property getter to EventBean type");
                        }
                        var wrapperEvent = (DecoratingEventBean)theEvent;
                        var wrappedEvent = wrapperEvent.UnderlyingEvent;
                        return wrappedEvent == null ? null : undMapped.Get(wrappedEvent, mapKey);
                    }
                });
            }
            EventPropertyGetterMapped decoMapped = _underlyingMapType.GetGetterMapped(mappedProperty);

            if (decoMapped != null)
            {
                return(new ProxyEventPropertyGetterMapped
                {
                    ProcGet = (theEvent, mapKey) =>
                    {
                        if (!(theEvent is DecoratingEventBean))
                        {
                            throw new PropertyAccessException("Mismatched property getter to EventBean type");
                        }
                        var wrapperEvent = (DecoratingEventBean)theEvent;
                        var map = wrapperEvent.DecoratingProperties;
                        return decoMapped.Get(_eventAdapterService.AdapterForTypedMap(map, _underlyingMapType), mapKey);
                    }
                });
            }
            return(null);
        }