Ejemplo n.º 1
0
        private static void TryAssertionExcludeEndpoints(
            RegressionEnvironment env,
            RegressionPath path,
            string fields,
            AtomicLong milestone)
        {
            var fieldsCurrentTs = new [] { "val0","val1","val2","val3","val4","val5","val6","val7" };
            var eplCurrentTS = "@Name('s0') select " +
                               "current_timestamp.between(" + fields + ", true, true) as val0, " +
                               "current_timestamp.between(" + fields + ", true, false) as val1, " +
                               "current_timestamp.between(" + fields + ", false, true) as val2, " + 
                               "current_timestamp.between(" + fields + ", false, false) as val3, " +
                               "current_timestamp.between(" + fields + ", VAR_TRUE, VAR_TRUE) as val4, " +
                               "current_timestamp.between(" + fields + ", VAR_TRUE, VAR_FALSE) as val5, " +
                               "current_timestamp.between(" + fields + ", VAR_FALSE, VAR_TRUE) as val6, " +
                               "current_timestamp.between(" + fields + ", VAR_FALSE, VAR_FALSE) as val7 " +
                               "from SupportTimeStartEndA";
            env.CompileDeploy(eplCurrentTS, path).AddListener("s0");
            LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsCurrentTs, typeof(bool?));

            env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsCurrentTs,
                false);

            env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 1));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsCurrentTs,
                new object[] {true, false, true, false, true, false, true, false});

            env.MilestoneInc(milestone);

            env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 2));
            EPAssertionUtil.AssertPropsAllValuesSame(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsCurrentTs,
                true);

            env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 1));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsCurrentTs,
                new object[] {true, true, false, false, true, true, false, false});

            env.UndeployModuleContaining("s0");

            // test calendar field and constants
            var fieldsConstants = new [] { "val0","val1","val2","val3" };
            var eplConstants = "@Name('s0') select " +
                               "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), true, true) as val0, " +
                               "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), true, false) as val1, " +
                               "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), false, true) as val2, " +
                               "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), false, false) as val3 " +
                               "from SupportTimeStartEndA";
            env.CompileDeploy(eplConstants).AddListener("s0");
            LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsConstants, typeof(bool?));

            env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsConstants,
                new object[] {false, false, false, false});

            env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:00.000", 0));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsConstants,
                new object[] {true, true, false, false});

            env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:05.000", 0));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsConstants,
                new object[] {true, true, true, true});

            env.MilestoneInc(milestone);

            env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:59.999", 0));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsConstants,
                new object[] {true, true, true, true});

            env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.000", 0));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsConstants,
                new object[] {true, false, true, false});

            env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.001", 0));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fieldsConstants,
                new object[] {false, false, false, false});

            env.UndeployModuleContaining("s0");
        }
Ejemplo n.º 2
0
        public void TestMinMaxBy()
        {
            String[] fields      = "val0,val1,val2,val3".SplitCsv();
            String   eplFragment = "select " +
                                   "contained.MinBy(x => p00) as val0," +
                                   "contained.MaxBy(x => p00) as val1," +
                                   "contained.MinBy(x => p00).id as val2," +
                                   "contained.MaxBy(x => p00).P00 as val3 " +
                                   "from Bean";
            EPStatement stmtFragment = _epService.EPAdministrator.CreateEPL(eplFragment);

            stmtFragment.Events += _listener.Update;
            LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(SupportBean_ST0), typeof(SupportBean_ST0), typeof(string), typeof(int?) });

            SupportBean_ST0_Container bean = SupportBean_ST0_Container.Make2Value("E1,12", "E2,11", "E2,2");

            _epService.EPRuntime.SendEvent(bean);
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields,
                                        new Object[] { bean.Contained[2], bean.Contained[0], "E2", 12 });

            bean = SupportBean_ST0_Container.Make2Value("E1,12");
            _epService.EPRuntime.SendEvent(bean);
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields,
                                        new Object[] { bean.Contained[0], bean.Contained[0], "E1", 12 });

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value(null));
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields,
                                        new Object[] { null, null, null, null });

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value());
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields,
                                        new Object[] { null, null, null, null });

            stmtFragment.Dispose();

            // test scalar-coll with lambda
            String[] fieldsLambda = "val0,val1".Split(',');
            _epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(TestEnumMinMax.MyService).FullName, "ExtractNum");
            String eplLambda = "select " +
                               "Strvals.minBy(v => extractNum(v)) as val0, " +
                               "Strvals.maxBy(v => extractNum(v)) as val1 " +
                               "from SupportCollection";
            EPStatement stmtLambda = _epService.EPAdministrator.CreateEPL(eplLambda);

            stmtLambda.Events += _listener.Update;
            LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new [] { typeof(string), typeof(string) });

            _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4"));
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { "E1", "E5" });

            _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1"));
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { "E1", "E1" });
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportCollection.MakeString(null));
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { null, null });
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportCollection.MakeString(""));
            EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { null, null });
        }
Ejemplo n.º 3
0
            public void Run(RegressionEnvironment env)
            {
                var startTime = "2002-05-30T09:00:00.000";
                env.AdvanceTime(DateTimeParsingFunctions.ParseDefaultMSec(startTime));

                var fieldsCurrentTs = new [] { "val0","val1","val2","val3","val4","val5","val6","val7" };
                var eplCurrentTS = "@Name('s0') select " +
                                   "current_timestamp.after(LongdateStart) as val0, " +
                                   "current_timestamp.between(LongdateStart, LongdateEnd) as val1, " +
                                   "current_timestamp.between(DateTimeStart, DateTimeExEnd) as val2, " +
                                   "current_timestamp.between(DateTimeExStart, DateTimeEnd) as val3, " +
                                   "current_timestamp.between(DateTimeStart, DateTimeEnd) as val4, " +
                                   "current_timestamp.between(DateTimeExStart, DateTimeExEnd) as val5, " +
                                   "current_timestamp.between(DateTimeExEnd, DateTimeExStart) as val6, " +
                                   "current_timestamp.between(DateTimeOffsetStart, DateTimeOffsetEnd) as val7 " +
                                   "from SupportTimeStartEndA";
                env.CompileDeploy(eplCurrentTS).AddListener("s0");
                LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsCurrentTs, typeof(bool?));

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsCurrentTs,
                    new object[] {
                        true,  // LongdateStart (val0)
                        false, // LongdateStart - LongdateEnd
                        false, // DateTimeStart - DateTimeExEnd
                        false, // DateTimeExStart - DateTimeEnd
                        false, // DateTimeStart - DateTimeEnd
                        false, // DateTimeExStart - DateTimeExEnd
                        false, // DateTimeExEnd - DateTimeExStart
                        false  // DateTimeOffsetStart - DateTimeOffsetEnd
                    });

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 1));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsCurrentTs,
                    new object[] {
                        true, // LongdateStart (val0)
                        true, // LongdateStart - LongdateEnd
                        true, // DateTimeStart - DateTimeExEnd
                        true, // DateTimeExStart - DateTimeEnd
                        true, // DateTimeStart - DateTimeEnd
                        true, // DateTimeExStart - DateTimeExEnd
                        true, // DateTimeExEnd - DateTimeExStart
                        true  // DateTimeOffsetStart - DateTimeOffsetEnd
                    });

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 100));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsCurrentTs,
                    new object[] {
                        true, // LongdateStart (val0)
                        true, // LongdateStart - LongdateEnd
                        true, // DateTimeStart - DateTimeExEnd
                        true, // DateTimeExStart - DateTimeEnd
                        true, // DateTimeStart - DateTimeEnd
                        true, // DateTimeExStart - DateTimeExEnd
                        true, // DateTimeExEnd - DateTimeExStart
                        true  // DateTimeOffsetStart - DateTimeOffsetEnd
                    });

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 0));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsCurrentTs,
                    new object[] {
                        false, // LongdateStart (val0)
                        true, // LongdateStart - LongdateEnd
                        true, // DateTimeStart - DateTimeExEnd
                        true, // DateTimeExStart - DateTimeEnd
                        true, // DateTimeStart - DateTimeEnd
                        true, // DateTimeExStart - DateTimeExEnd
                        true, // DateTimeExEnd - DateTimeExStart
                        true  // DateTimeOffsetStart - DateTimeOffsetEnd
                    });

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 100));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsCurrentTs,
                    new object[] {
                        false, // LongdateStart (val0)
                        true, // LongdateStart - LongdateEnd
                        true, // DateTimeStart - DateTimeExEnd
                        true, // DateTimeExStart - DateTimeEnd
                        true, // DateTimeStart - DateTimeEnd
                        true, // DateTimeExStart - DateTimeExEnd
                        true, // DateTimeExEnd - DateTimeExStart
                        true  // DateTimeOffsetStart - DateTimeOffsetEnd
                    });

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.001", 100));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsCurrentTs,
                    new object[] {
                        false, // LongdateStart (val0)
                        false, // LongdateStart - LongdateEnd
                        false, // DateTimeStart - DateTimeExEnd
                        false, // DateTimeExStart - DateTimeEnd
                        false, // DateTimeStart - DateTimeEnd
                        false, // DateTimeExStart - DateTimeExEnd
                        false, // DateTimeExEnd - DateTimeExStart
                        false  // DateTimeOffsetStart - DateTimeOffsetEnd
                    });
                env.UndeployAll();

                // test calendar field and constants
                var fieldsConstants = new [] { "val0","val1","val2","val3","val4" };
                var eplConstants = "@Name('s0') select " +
                                   "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val0, " +
                                   "DateTimeStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val1, " +
                                   "DateTimeExStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val2, " +
                                   "DateTimeOffsetStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val3, " +
                                   "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000')) as val4 " +
                                   "from SupportTimeStartEndA";
                env.CompileDeployAddListenerMile(eplConstants, "s0", 1);
                LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsConstants, typeof(bool?));

                env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0));
                EPAssertionUtil.AssertPropsAllValuesSame(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsConstants,
                    false);

                env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:00.000", 0));
                EPAssertionUtil.AssertPropsAllValuesSame(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsConstants,
                    true);

                env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:05.000", 0));
                EPAssertionUtil.AssertPropsAllValuesSame(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsConstants,
                    true);

                env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:59.999", 0));
                EPAssertionUtil.AssertPropsAllValuesSame(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsConstants,
                    true);

                env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.000", 0));
                EPAssertionUtil.AssertPropsAllValuesSame(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsConstants,
                    true);

                env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.001", 0));
                EPAssertionUtil.AssertPropsAllValuesSame(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fieldsConstants,
                    false);

                env.UndeployAll();
            }
Ejemplo n.º 4
0
        private void RunAssertionTakeEvents(EPServiceProvider epService)
        {
            string[] fields = "val0,val1,val2,val3,val4,val5".Split(',');
            string   epl    = "select " +
                              "Contained.take(2) as val0," +
                              "Contained.take(1) as val1," +
                              "Contained.take(0) as val2," +
                              "Contained.take(-1) as val3," +
                              "Contained.takeLast(2) as val4," +
                              "Contained.takeLast(1) as val5" +
                              " from Bean";
            EPStatement stmt     = epService.EPAdministrator.CreateEPL(epl);
            var         listener = new SupportUpdateListener();

            stmt.Events += listener.Update;
            LambdaAssertionUtil.AssertTypes(stmt.EventType, fields, new Type[] {
                typeof(ICollection <SupportBean_ST0>),
                typeof(ICollection <SupportBean_ST0>),
                typeof(ICollection <SupportBean_ST0>),
                typeof(ICollection <SupportBean_ST0>),
                typeof(ICollection <SupportBean_ST0>),
                typeof(ICollection <SupportBean_ST0>)
            });

            epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,2", "E3,3"));
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E1,E2");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val3", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val4", "E2,E3");
            LambdaAssertionUtil.AssertST0Id(listener, "val5", "E3");
            listener.Reset();

            epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,2"));
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E1,E2");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val3", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val4", "E1,E2");
            LambdaAssertionUtil.AssertST0Id(listener, "val5", "E2");
            listener.Reset();

            epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1"));
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val3", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val4", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val5", "E1");
            listener.Reset();

            epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value());
            foreach (string field in fields)
            {
                LambdaAssertionUtil.AssertST0Id(listener, field, "");
            }
            listener.Reset();

            epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value(null));
            foreach (string field in fields)
            {
                LambdaAssertionUtil.AssertST0Id(listener, field, null);
            }
            listener.Reset();

            stmt.Dispose();
        }
        private void RunAssertionSetLogicWithEvents(EPServiceProvider epService)
        {
            string epl =
                "expression last10A {" +
                " (select * from SupportBean_ST0(key0 like 'A%')#length(2)) " +
                "}" +
                "expression last10NonZero {" +
                " (select * from SupportBean_ST0(p00 > 0)#length(2)) " +
                "}" +
                "select " +
                "last10A().except(last10NonZero()) as val0," +
                "last10A().intersect(last10NonZero()) as val1, " +
                "last10A().union(last10NonZero()) as val2 " +
                "from SupportBean";
            EPStatement stmt     = epService.EPAdministrator.CreateEPL(epl);
            var         listener = new SupportUpdateListener();

            stmt.Events += listener.Update;
            LambdaAssertionUtil.AssertTypes(stmt.EventType, "val0".Split(','), new Type[] {
                typeof(ICollection <SupportBean_ST0>)
            });

            epService.EPRuntime.SendEvent(new SupportBean_ST0("E1", "A1", 10));    // in both
            epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "E1,E1");
            listener.Reset();

            epService.EPRuntime.SendEvent(new SupportBean_ST0("E2", "A1", 0));
            epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E2");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "E1,E2,E1");
            listener.Reset();

            epService.EPRuntime.SendEvent(new SupportBean_ST0("E3", "B1", 0));
            epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E2");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "E1,E2,E1");
            listener.Reset();

            epService.EPRuntime.SendEvent(new SupportBean_ST0("E4", "A2", -1));
            epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E2,E4");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "E2,E4,E1");
            listener.Reset();

            epService.EPRuntime.SendEvent(new SupportBean_ST0("E5", "A3", -2));
            epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "E4,E5");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "E4,E5,E1");
            listener.Reset();

            epService.EPRuntime.SendEvent(new SupportBean_ST0("E6", "A6", 11));    // in both
            epService.EPRuntime.SendEvent(new SupportBean_ST0("E7", "A7", 12));    // in both
            epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(listener, "val0", "");
            LambdaAssertionUtil.AssertST0Id(listener, "val1", "E6,E7");
            LambdaAssertionUtil.AssertST0Id(listener, "val2", "E6,E7,E6,E7");
            listener.Reset();

            stmt.Dispose();
        }
Ejemplo n.º 6
0
        private void RunAssertionIncludeEndpoints(EPServiceProvider epService)
        {
            string startTime = "2002-05-30T09:00:00.000";

            epService.EPRuntime.SendEvent(new CurrentTimeEvent(DateTimeParser.ParseDefaultMSec(startTime)));

            string[] fieldsCurrentTs = "val0,val1,val2,val3,val4,val5,val6".Split(',');
            string   eplCurrentTS    = "select " +
                                       "current_timestamp.after(longdateStart) as val0, " +
                                       "current_timestamp.between(longdateStart, longdateEnd) as val1, " +
                                       "current_timestamp.between(utildateStart, caldateEnd) as val2, " +
                                       "current_timestamp.between(caldateStart, utildateEnd) as val3, " +
                                       "current_timestamp.between(utildateStart, utildateEnd) as val4, " +
                                       "current_timestamp.between(caldateStart, caldateEnd) as val5, " +
                                       "current_timestamp.between(caldateEnd, caldateStart) as val6 " +
                                       "from SupportTimeStartEndA";
            EPStatement stmtCurrentTs = epService.EPAdministrator.CreateEPL(eplCurrentTS);
            var         listener      = new SupportUpdateListener();

            stmtCurrentTs.Events += listener.Update;
            LambdaAssertionUtil.AssertTypesAllSame(stmtCurrentTs.EventType, fieldsCurrentTs, typeof(bool?));

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {
                true, false, false, false, false, false, false
            });

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 1));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {
                true, true, true, true, true, true, true
            });

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 100));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {
                true, true, true, true, true, true, true
            });

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 0));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {
                false, true, true, true, true, true, true
            });

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 100));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {
                false, true, true, true, true, true, true
            });

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.001", 100));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {
                false, false, false, false, false, false, false
            });
            stmtCurrentTs.Dispose();

            // test calendar field and constants
            epService.EPAdministrator.Configuration.AddImport(typeof(DateTime));
            string[] fieldsConstants = "val0,val1,val2,val5".Split(',');
            string   eplConstants    = "select " +
                                       "longdateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:00:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:01:00.000')) as val0, " +
                                       "utildateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:00:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:01:00.000')) as val1, " +
                                       "caldateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:00:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:01:00.000')) as val2, " +
                                       "longdateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:01:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:00:00.000')) as val5 " +
                                       "from SupportTimeStartEndA";
            EPStatement stmtConstants = epService.EPAdministrator.CreateEPL(eplConstants);

            stmtConstants.Events += listener.Update;
            LambdaAssertionUtil.AssertTypesAllSame(stmtConstants.EventType, fieldsConstants, typeof(bool?));

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, false);

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:00.000", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true);

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:05.000", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true);

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:59.999", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true);

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.000", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true);

            epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.001", 0));
            EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, false);

            stmtConstants.Dispose();
        }
Ejemplo n.º 7
0
        public void Run(RegressionEnvironment env)
        {
            var startTime = "2002-05-30T09:00:00.000";
            env.AdvanceTime(DateTimeParsingFunctions.ParseDefaultMSec(startTime));

            var fields = new [] { "val0","val1","val2","val3", "val4" };
            var epl = "" +
                      "create variable int varyear;\n" +
                      "create variable int varmonth;\n" +
                      "create variable int varday;\n" +
                      "@Name('s0') select " +
                      "current_timestamp.withDate(varyear, varmonth, varday) as val0," +
                      "LongDate.withDate(varyear, varmonth, varday) as val1," +
                      "DateTimeEx.withDate(varyear, varmonth, varday) as val2," + 
                      "DateTimeOffset.withDate(varyear, varmonth, varday) as val3," +
                      "DateTime.withDate(varyear, varmonth, varday) as val4" +
                      " from SupportDateTime";
            env.CompileDeploy(epl).AddListener("s0");
            var deployId = env.DeploymentId("s0");
            LambdaAssertionUtil.AssertTypes(
                env.Statement("s0").EventType,
                fields,
                new[] {
                    typeof(long?),
                    typeof(long?),
                    typeof(DateTimeEx),
                    typeof(DateTimeOffset?),
                    typeof(DateTime?),
                });

            env.SendEventBean(SupportDateTime.Make(null));

            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new[] {
                    SupportDateTime.GetValueCoerced(startTime, "long"),
                    null,
                    null,
                    null,
                    null
                });

            var expectedTime = "2004-09-03T09:00:00.000";
            env.Runtime.VariableService.SetVariableValue(deployId, "varyear", 2004);
            env.Runtime.VariableService.SetVariableValue(deployId, "varmonth", 9);
            env.Runtime.VariableService.SetVariableValue(deployId, "varday", 3);
            env.SendEventBean(SupportDateTime.Make(startTime));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                SupportDateTime.GetArrayCoerced(expectedTime, "long", "long", "dtx", "dto", "date"));

            expectedTime = "2002-09-30T09:00:00.000";
            env.Runtime.VariableService.SetVariableValue(deployId, "varyear", null);
            env.Runtime.VariableService.SetVariableValue(deployId, "varmonth", 9);
            env.Runtime.VariableService.SetVariableValue(deployId, "varday", null);
            env.SendEventBean(SupportDateTime.Make(startTime));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                SupportDateTime.GetArrayCoerced(expectedTime, "long", "long", "dtx", "dto", "date"));

            env.UndeployAll();
        }
Ejemplo n.º 8
0
        private void RunAssertionUDFStaticMethod(EPServiceProvider epService)
        {
            var fields = "val1,val2,val3,val4".Split(',');
            epService.EPAdministrator.Configuration.AddImport(typeof(SupportBean_ST0_Container));
            var epl = "select " +
                      "SupportBean_ST0_Container.MakeSampleList().where(x => x.p00 < 5) as val1, " +
                      "SupportBean_ST0_Container.MakeSampleArray().where(x => x.p00 < 5) as val2, " +
                      "MakeSampleList().where(x => x.p00 < 5) as val3, " +
                      "MakeSampleArray().where(x => x.p00 < 5) as val4 " +
                      "from SupportBean#length(2) as sb";
            var stmt = epService.EPAdministrator.CreateEPL(epl);
            var listener = new SupportUpdateListener();
            stmt.Events += listener.Update;

            SupportBean_ST0_Container.Samples = new[] {"E1,1", "E2,20", "E3,3"};
            epService.EPRuntime.SendEvent(new SupportBean());
            foreach (var field in fields)
            {
                var result = listener.AssertOneGetNew().Get(field).UnwrapIntoArray<SupportBean_ST0>();
                Assert.AreEqual(2, result.Length, "Failed for field " + field);
            }

            listener.Reset();

            SupportBean_ST0_Container.Samples = null;
            epService.EPRuntime.SendEvent(new SupportBean());
            foreach (var field in fields)
            {
                Assert.IsNull(listener.AssertOneGetNew().Get(field));
            }

            listener.Reset();

            SupportBean_ST0_Container.Samples = new string[0];
            epService.EPRuntime.SendEvent(new SupportBean());
            foreach (var field in fields)
            {
                var result = listener.AssertOneGetNew().Get(field).UnwrapIntoArray<SupportBean_ST0>();
                Assert.AreEqual(0, result.Length);
            }

            listener.Reset();
            stmt.Dispose();

            // test UDF returning scalar values collection
            fields = "val0,val1,val2,val3".Split(',');
            epService.EPAdministrator.Configuration.AddImport(typeof(SupportCollection));
            var eplScalar = "select " +
                            "SupportCollection.MakeSampleListString().where(x => x != 'E1') as val0, " +
                            "SupportCollection.MakeSampleArrayString().where(x => x != 'E1') as val1, " +
                            "MakeSampleListString().where(x => x != 'E1') as val2, " +
                            "MakeSampleArrayString().where(x => x != 'E1') as val3 " +
                            "from SupportBean#length(2) as sb";
            var stmtScalar = epService.EPAdministrator.CreateEPL(eplScalar);
            stmtScalar.Events += listener.Update;
            LambdaAssertionUtil.AssertTypes(
                stmtScalar.EventType, fields, new[]
                {
                    typeof(ICollection<string>),
                    typeof(ICollection<string>),
                    typeof(ICollection<string>),
                    typeof(ICollection<string>)
                });

            SupportCollection.SampleCSV = "E1,E2,E3";
            epService.EPRuntime.SendEvent(new SupportBean());
            foreach (var field in fields)
            {
                LambdaAssertionUtil.AssertValuesArrayScalar(listener, field, "E2", "E3");
            }

            listener.Reset();

            SupportCollection.SampleCSV = null;
            epService.EPRuntime.SendEvent(new SupportBean());
            foreach (var field in fields)
            {
                LambdaAssertionUtil.AssertValuesArrayScalar(listener, field, null);
            }

            listener.Reset();

            SupportCollection.SampleCSV = "";
            epService.EPRuntime.SendEvent(new SupportBean());
            foreach (var field in fields)
            {
                LambdaAssertionUtil.AssertValuesArrayScalar(listener, field);
            }

            listener.Reset();

            stmtScalar.Dispose();
        }
Ejemplo n.º 9
0
        public void TestTakeWhileEvents()
        {
            String[] fields = "val0,val1,val2,val3".Split(',');
            String   epl    = "select " +
                              "contained.TakeWhile(x => x.P00 > 0) as val0," +
                              "contained.TakeWhile( (x, i) => x.P00 > 0 and i<2) as val1," +
                              "contained.TakeWhileLast(x => x.P00 > 0) as val2," +
                              "contained.TakeWhileLast( (x, i) => x.P00 > 0 and i<2) as val3" +
                              " from Bean";
            EPStatement stmt = _epService.EPAdministrator.CreateEPL(epl);

            stmt.Events += _listener.Update;
            LambdaAssertionUtil.AssertTypes(stmt.EventType, fields, new Type[]
            {
                typeof(ICollection <object>),
                typeof(ICollection <object>),
                typeof(ICollection <object>),
                typeof(ICollection <object>)
            });

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,2", "E3,3"));
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1,E2,E3");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1,E2");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E2,E3");
            LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E2,E3");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,0", "E2,2", "E3,3"));
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E2,E3");
            LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E2,E3");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,0", "E3,3"));
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E3");
            LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E3");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,1", "E3,0"));
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1,E2");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1,E2");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val3", "");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1"));
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E1");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value());
            foreach (String field in fields)
            {
                LambdaAssertionUtil.AssertST0Id(_listener, field, "");
            }
            _listener.Reset();

            _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value(null));
            foreach (String field in fields)
            {
                LambdaAssertionUtil.AssertST0Id(_listener, field, null);
            }
            _listener.Reset();
        }
Ejemplo n.º 10
0
            public void Run(RegressionEnvironment env)
            {
                var fields = new [] { "val0","val1","val2","val3","val4","val5","val6" };
                var eplFragment = "@Name('s0') select " +
                                  "DateTimeOffset.roundHalf('msec') as val0," +
                                  "DateTimeOffset.roundHalf('sec') as val1," +
                                  "DateTimeOffset.roundHalf('minutes') as val2," +
                                  "DateTimeOffset.roundHalf('hour') as val3," +
                                  "DateTimeOffset.roundHalf('day') as val4," +
                                  "DateTimeOffset.roundHalf('month') as val5," +
                                  "DateTimeOffset.roundHalf('year') as val6" +
                                  " from SupportDateTime";
                env.CompileDeploy(eplFragment).AddListener("s0");
                LambdaAssertionUtil.AssertTypes(
                    env.Statement("s0").EventType,
                    fields,
                    new[] {
                        typeof(DateTimeOffset?),
                        typeof(DateTimeOffset?),
                        typeof(DateTimeOffset?),
                        typeof(DateTimeOffset?),
                        typeof(DateTimeOffset?),
                        typeof(DateTimeOffset?),
                        typeof(DateTimeOffset?)
                    });

                string[] expected = {
                    "2002-05-30T15:30:02.550",
                    "2002-05-30T15:30:03.000",
                    "2002-05-30T15:30:00.000",
                    "2002-05-30T16:00:00.00",
                    "2002-05-31T00:00:00.000",
                    "2002-06-01T00:00:00.000",
                    "2002-01-01T00:00:00.000"
                };
                var startTime = "2002-05-30T15:30:02.550";
                env.SendEventBean(SupportDateTime.Make(startTime));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    SupportDateTime.GetArrayCoerced(expected, "dto"));

                // test rounding up/down
                env.UndeployAll();
                fields = new [] { "val0" };
                eplFragment = "@Name('s0') select DateTimeOffset.roundHalf('min') as val0 from SupportDateTime";
                env.CompileDeployAddListenerMile(eplFragment, "s0", 1);

                env.SendEventBean(SupportDateTime.Make("2002-05-30T15:30:29.999"));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new[] {SupportDateTime.GetValueCoerced("2002-05-30T15:30:00.000", "dto")});

                env.SendEventBean(SupportDateTime.Make("2002-05-30T15:30:30.000"));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new[] {SupportDateTime.GetValueCoerced("2002-05-30T15:31:00.000", "dto")});

                env.SendEventBean(SupportDateTime.Make("2002-05-30T15:30:30.001"));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new[] {SupportDateTime.GetValueCoerced("2002-05-30T15:31:00.000", "dto")});

                env.UndeployAll();
            }
Ejemplo n.º 11
0
        private void RunAssertionSumOfScalar(EPServiceProvider epService)
        {
            string[] fields      = "val0,val1".Split(',');
            string   eplFragment = "select " +
                                   "Intvals.sumOf() as val0, " +
                                   "Bdvals.sumOf() as val1 " +
                                   "from SupportCollection";
            EPStatement stmtFragment = epService.EPAdministrator.CreateEPL(eplFragment);
            var         listener     = new SupportUpdateListener();

            stmtFragment.Events += listener.Update;
            LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] {
                typeof(int?), typeof(decimal?)
            });

            epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("1,4,5"));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 1 + 4 + 5, 1m + 4m + 5m });

            epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3,4"));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 3 + 4, 3m + 4m });

            epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3"));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 3, 3m });

            epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric(""));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { null, null });

            epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric(null));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { null, null });

            stmtFragment.Dispose();

            // test average with lambda
            epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(ExecEnumMinMax.MyService), "ExtractNum");
            epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractDecimal", typeof(ExecEnumMinMax.MyService), "ExtractDecimal");

            // lambda with string-array input
            string[] fieldsLambda = "val0,val1".Split(',');
            string   eplLambda    = "select " +
                                    "Strvals.sumOf(v => extractNum(v)) as val0, " +
                                    "Strvals.sumOf(v => extractDecimal(v)) as val1 " +
                                    "from SupportCollection";
            EPStatement stmtLambda = epService.EPAdministrator.CreateEPL(eplLambda);

            stmtLambda.Events += listener.Update;
            LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new Type[] { typeof(int?), typeof(decimal?) });

            epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4"));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 2 + 1 + 5 + 4, 2m + 1m + 5m + 4m });

            epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1"));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 1, 1m });

            epService.EPRuntime.SendEvent(SupportCollection.MakeString(null));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null });

            epService.EPRuntime.SendEvent(SupportCollection.MakeString(""));
            EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null });

            stmtLambda.Dispose();
        }
        public void TestSetLogicWithEvents()
        {
            String epl = "expression last10A {"
                         + " (select * from SupportBean_ST0(key0 like 'A%').win:length(2)) "
                         + "}" + "expression last10NonZero {"
                         + " (select * from SupportBean_ST0(p00 > 0).win:length(2)) "
                         + "}" + "select " + "last10A().except(last10NonZero()) as val0,"
                         + "last10A().intersect(last10NonZero()) as val1, "
                         + "last10A().union(last10NonZero()) as val2 "
                         + "from SupportBean";
            EPStatement stmt = _epService.EPAdministrator.CreateEPL(epl);

            stmt.Events += _listener.Update;
            LambdaAssertionUtil.AssertTypes(stmt.EventType, "val0".Split(','),
                                            new Type[] { typeof(ICollection <object>) }
                                            );

            _epService.EPRuntime.SendEvent(new SupportBean_ST0("E1", "A1", 10)); // in both
            _epService.EPRuntime.SendEvent(
                new SupportBean());
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E1");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(new SupportBean_ST0("E2", "A1", 0));
            _epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E2");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E2,E1");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(new SupportBean_ST0("E3", "B1", 0));
            _epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E2");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E2,E1");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(new SupportBean_ST0("E4", "A2", -1));
            _epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E2,E4");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E2,E4,E1");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(new SupportBean_ST0("E5", "A3", -2));
            _epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E4,E5");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E4,E5,E1");
            _listener.Reset();

            _epService.EPRuntime.SendEvent(new SupportBean_ST0("E6", "A6", 11)); // in both
            _epService.EPRuntime.SendEvent(
                new SupportBean_ST0("E7", "A7", 12));                            // in both
            _epService.EPRuntime.SendEvent(new SupportBean());
            LambdaAssertionUtil.AssertST0Id(_listener, "val0", "");
            LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E6,E7");
            LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E6,E7,E6,E7");
            _listener.Reset();
        }