Exemple #1
0
        public void TestArrayExpressions_OM()
        {
            String stmtText = "select {\"a\",\"b\"} as stringArray, " +
                              "{} as emptyArray, " +
                              "{1} as oneEleArray, " +
                              "{1,2,3} as intArray " +
                              "from " + typeof(SupportBean).FullName;
            EPStatementObjectModel model = new EPStatementObjectModel();

            model.SelectClause = SelectClause.Create()
                                 .Add(Expressions.Array().Add(Expressions.Constant("a")).Add(Expressions.Constant("b")), "stringArray")
                                 .Add(Expressions.Array(), "emptyArray")
                                 .Add(Expressions.Array().Add(Expressions.Constant(1)), "oneEleArray")
                                 .Add(Expressions.Array().Add(Expressions.Constant(1)).Add(2).Add(3), "intArray");
            model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName));
            model            = (EPStatementObjectModel)SerializableObjectCopier.Copy(model);
            Assert.AreEqual(stmtText, model.ToEPL());

            EPStatement           stmt     = _epService.EPAdministrator.Create(model);
            SupportUpdateListener listener = new SupportUpdateListener();

            stmt.Events += listener.Update;

            SupportBean bean = new SupportBean("a", 10);

            _epService.EPRuntime.SendEvent(bean);

            EventBean theEvent = listener.AssertOneGetNewAndReset();

            EPAssertionUtil.AssertEqualsExactOrder((String[])theEvent.Get("stringArray"), new String[] { "a", "b" });
            EPAssertionUtil.AssertEqualsExactOrder((Object[])theEvent.Get("emptyArray"), new Object[0]);
            EPAssertionUtil.AssertEqualsExactOrder((int?[])theEvent.Get("oneEleArray"), new int?[] { 1 });
            EPAssertionUtil.AssertEqualsExactOrder((int?[])theEvent.Get("intArray"), new int?[] { 1, 2, 3 });
        }
Exemple #2
0
            public void Run(RegressionEnvironment env)
            {
                var epl = "@Name('s0') select {\"a\",\"b\"} as StringArray, " +
                          "{} as EmptyArray, " +
                          "{1} as OneEleArray, " +
                          "{1,2,3} as IntArray " +
                          "from " +
                          typeof(SupportBean).Name;
                var model = new EPStatementObjectModel();

                model.Annotations  = Collections.SingletonList(AnnotationPart.NameAnnotation("s0"));
                model.SelectClause = SelectClause.Create()
                                     .Add(Expressions.Array().Add(Expressions.Constant("a")).Add(Expressions.Constant("b")), "StringArray")
                                     .Add(Expressions.Array(), "EmptyArray")
                                     .Add(Expressions.Array().Add(Expressions.Constant(1)), "OneEleArray")
                                     .Add(Expressions.Array().Add(Expressions.Constant(1)).Add(2).Add(3), "IntArray");

                model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).Name));
                Assert.AreEqual(epl, model.ToEPL());
                env.CompileDeploy(model).AddListener("s0");

                var bean = new SupportBean("a", 10);

                env.SendEventBean(bean);

                var theEvent = env.Listener("s0").AssertOneGetNewAndReset();

                EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("StringArray").Unwrap <string>(), new[] { "a", "b" });
                EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("EmptyArray").Unwrap <object>(), new object[0]);
                EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("OneEleArray").Unwrap <int>(), new int[] { 1 });
                EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("IntArray").Unwrap <int>(), new int[] { 1, 2, 3 });

                env.UndeployAll();
            }
Exemple #3
0
        private void RunAssertionArrayExpressions_OM()
        {
            string stmtText = "select {\"a\",\"b\"} as stringArray, " +
                              "{} as emptyArray, " +
                              "{1} as oneEleArray, " +
                              "{1,2,3} as intArray " +
                              "from " + Name.Of <SupportBean>();
            var model = new EPStatementObjectModel();

            model.SelectClause = SelectClause.Create()
                                 .Add(Expressions.Array().Add(Expressions.Constant("a")).Add(Expressions.Constant("b")), "stringArray")
                                 .Add(Expressions.Array(), "emptyArray")
                                 .Add(Expressions.Array().Add(Expressions.Constant(1)), "oneEleArray")
                                 .Add(Expressions.Array().Add(Expressions.Constant(1)).Add(2).Add(3), "intArray");
            model.FromClause = FromClause.Create(FilterStream.Create(typeof(SupportBean).FullName));
            model            = (EPStatementObjectModel)SerializableObjectCopier.Copy(model);
            Assert.AreEqual(stmtText, model.ToEPL());

            EPStatement stmt     = _epService.EPAdministrator.Create(model);
            var         listener = new SupportUpdateListener();

            stmt.AddListener(listener);

            var bean = new SupportBean("a", 10);

            _epService.EPRuntime.SendEvent(bean);

            EventBean theEvent = listener.AssertOneGetNewAndReset();

            EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("stringArray").UnwrapIntoArray <string>(), new string[] { "a", "b" });
            EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("emptyArray").UnwrapIntoArray <object>(), new object[0]);
            EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("oneEleArray").UnwrapIntoArray <int>(), new int[] { 1 });
            EPAssertionUtil.AssertEqualsExactOrder(theEvent.Get("intArray").UnwrapIntoArray <int>(), new int[] { 1, 2, 3 });

            stmt.Dispose();
        }