Example #1
0
 private static void SendSupportBean_A(
     RegressionEnvironment env,
     string id)
 {
     var bean = new SupportBean_A(id);
     env.SendEventBean(bean);
 }
Example #2
0
            public void Run(RegressionEnvironment env)
            {
                var stmt =
                    "@Name('s0') select a, b, a[0] as a0, a[0].Id as a0Id, a[1] as a1, a[1].Id as a1Id, a[2] as a2, a[2].Id as a2Id from pattern [a=SupportBean_A until b=SupportBean_B]";
                env.CompileDeploy(stmt).AddListener("s0");

                env.Milestone(0);

                var eventA1 = new SupportBean_A("A1");
                env.SendEventBean(eventA1);

                env.Milestone(1);

                var eventA2 = new SupportBean_A("A2");
                env.SendEventBean(eventA2);
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                env.Milestone(2);

                var eventB1 = new SupportBean_B("B1");
                env.SendEventBean(eventB1);

                var theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                EPAssertionUtil.AssertEqualsExactOrder(
                    (object[]) theEvent.Get("a"),
                    new object[] {eventA1, eventA2});
                Assert.AreEqual(eventA1, theEvent.Get("a0"));
                Assert.AreEqual(eventA2, theEvent.Get("a1"));
                Assert.IsNull(theEvent.Get("a2"));
                Assert.AreEqual("A1", theEvent.Get("a0Id"));
                Assert.AreEqual("A2", theEvent.Get("a1Id"));
                Assert.IsNull(theEvent.Get("a2Id"));
                Assert.AreEqual(eventB1, theEvent.Get("b"));

                env.UndeployModuleContaining("s0");

                // try wildcard
                stmt = "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B]";
                env.CompileDeploy(stmt).AddListener("s0");

                env.SendEventBean(eventA1);
                env.SendEventBean(eventA2);
                Assert.IsFalse(env.Listener("s0").IsInvoked);
                env.SendEventBean(eventB1);

                theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                EPAssertionUtil.AssertEqualsExactOrder(
                    (object[]) theEvent.Get("a"),
                    new object[] {eventA1, eventA2});
                Assert.AreSame(eventA1, theEvent.Get("a[0]"));
                Assert.AreSame(eventA2, theEvent.Get("a[1]"));
                Assert.IsNull(theEvent.Get("a[2]"));
                Assert.AreEqual("A1", theEvent.Get("a[0].Id"));
                Assert.AreEqual("A2", theEvent.Get("a[1].Id"));
                Assert.IsNull(theEvent.Get("a[2].Id"));
                Assert.AreSame(eventB1, theEvent.Get("b"));

                env.UndeployAll();
            }
Example #3
0
 private static SupportBean_A SendA(
     string id,
     RegressionEnvironment env)
 {
     var a = new SupportBean_A(id);
     env.SendEventBean(a);
     return a;
 }
Example #4
0
            public void Run(RegressionEnvironment env)
            {
                env.CompileDeploy("insert into VarStreamAny select * from SupportBean");
                env.CompileDeploy("insert into VarStreamAny select * from SupportBeanVariantStream");
                env.CompileDeploy("insert into VarStreamAny select * from SupportBean_A");
                env.CompileDeploy(
                    "insert into VarStreamAny select Symbol as TheString, Volume as IntPrimitive, Feed as Id from SupportMarketDataBean");
                env.CompileDeploy("@Name('s0') select * from VarStreamAny").AddListener("s0");
                Assert.AreEqual(0, env.Statement("s0").EventType.PropertyNames.Length);

                object eventOne = new SupportBean("E0", -1);
                env.SendEventBean(eventOne);
                Assert.AreSame(eventOne, env.Listener("s0").AssertOneGetNewAndReset().Underlying);

                object eventTwo = new SupportBean_A("E1");
                env.SendEventBean(eventTwo);
                Assert.AreSame(eventTwo, env.Listener("s0").AssertOneGetNewAndReset().Underlying);

                env.UndeployModuleContaining("s0");

                env.CompileDeploy("@Name('s0') select TheString,Id,IntPrimitive from VarStreamAny").AddListener("s0");

                var eventType = env.Statement("s0").EventType;
                Assert.AreEqual(typeof(object), eventType.GetPropertyType("TheString"));
                Assert.AreEqual(typeof(object), eventType.GetPropertyType("Id"));
                Assert.AreEqual(typeof(object), eventType.GetPropertyType("IntPrimitive"));

                var fields = new [] { "TheString","Id","IntPrimitive" };
                env.SendEventBean(new SupportBeanVariantStream("E1"));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {"E1", null, null});

                env.SendEventBean(new SupportBean("E2", 10));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {"E2", null, 10});

                env.SendEventBean(new SupportBean_A("E3"));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {null, "E3", null});

                env.SendEventBean(new SupportMarketDataBean("s1", 100, 1000L, "f1"));
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {"s1", "f1", 1000L});

                env.UndeployAll();
            }
Example #5
0
        private static void TryOrAndNot(
            RegressionEnvironment env,
            string pattern)
        {
            var expression = "@Name('s0') select * " + "from pattern [" + pattern + "]";
            env.CompileDeploy(expression);
            env.AddListener("s0");

            var eventA1 = new SupportBean_A("A1");
            env.SendEventBean(eventA1);
            var theEvent = env.Listener("s0").AssertOneGetNewAndReset();
            Assert.AreEqual(eventA1, theEvent.Get("a"));
            Assert.IsNull(theEvent.Get("b"));

            var eventB1 = new SupportBean_B("B1");
            env.SendEventBean(eventB1);
            theEvent = env.Listener("s0").AssertOneGetNewAndReset();
            Assert.AreEqual(eventA1, theEvent.Get("a"));
            Assert.AreEqual(eventB1, theEvent.Get("b"));

            env.UndeployAll();
        }
Example #6
0
            public void Run(RegressionEnvironment env)
            {
                var expression =
                    "@Name('s0') select * from pattern [every a=SupportBean_A -> b=SupportBean_B -> c=SupportBean_C -> d=SupportBean_D]";

                env.CompileDeploy(expression);

                env.AddListener("s0");

                var events = new object[10];
                events[0] = new SupportBean_A("A1");
                env.SendEventBean(events[0]);

                events[1] = new SupportBean_A("A2");
                env.SendEventBean(events[1]);

                events[2] = new SupportBean_B("B1");
                env.SendEventBean(events[2]);

                events[3] = new SupportBean_C("C1");
                env.SendEventBean(events[3]);
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                events[4] = new SupportBean_D("D1");
                env.SendEventBean(events[4]);
                Assert.AreEqual(2, env.Listener("s0").LastNewData.Length);
                string[] fields = {"a", "b", "c", "d"};
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").LastNewData[0],
                    fields,
                    new[] {events[0], events[2], events[3], events[4]});
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").LastNewData[1],
                    fields,
                    new[] {events[1], events[2], events[3], events[4]});

                env.UndeployAll();
            }
Example #7
0
            public void Run(RegressionEnvironment env)
            {
                string stmt;
                EventBean theEvent;

                stmt =
                    "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean_C(Id = ('C' || a[0].Id || a[1].Id || b.Id))]";
                env.CompileDeploy(stmt).AddListener("s0");

                object eventA1 = new SupportBean_A("A1");
                env.SendEventBean(eventA1);

                env.Milestone(0);

                object eventA2 = new SupportBean_A("A2");
                env.SendEventBean(eventA2);

                env.Milestone(1);

                object eventB1 = new SupportBean_B("B1");
                env.SendEventBean(eventB1);

                env.Milestone(2);

                env.SendEventBean(new SupportBean_C("C1"));
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                env.Milestone(3);

                object eventC1 = new SupportBean_C("CA1A2B1");
                env.SendEventBean(eventC1);
                theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreEqual(eventA1, theEvent.Get("a[0]"));
                Assert.AreEqual(eventA2, theEvent.Get("a[1]"));
                Assert.IsNull(theEvent.Get("a[2]"));
                Assert.AreEqual(eventB1, theEvent.Get("b"));
                Assert.AreEqual(eventC1, theEvent.Get("c"));
                env.UndeployAll();

                // Test equals-optimization with array event
                stmt =
                    "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean(TheString = a[1].Id)]";
                env.CompileDeploy(stmt).AddListener("s0");

                env.SendEventBean(new SupportBean_A("A1"));
                env.SendEventBean(new SupportBean_A("A2"));
                env.SendEventBean(new SupportBean_B("B1"));

                env.SendEventBean(new SupportBean("A3", 20));
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                env.SendEventBean(new SupportBean("A2", 10));
                theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreEqual(10, theEvent.Get("c.IntPrimitive"));
                env.UndeployAll();

                // Test in-optimization
                stmt =
                    "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean(TheString in(a[2].Id))]";
                env.CompileDeploy(stmt).AddListener("s0");

                env.SendEventBean(new SupportBean_A("A1"));
                env.SendEventBean(new SupportBean_A("A2"));
                env.SendEventBean(new SupportBean_A("A3"));
                env.SendEventBean(new SupportBean_B("B1"));

                env.SendEventBean(new SupportBean("A2", 20));
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                env.SendEventBean(new SupportBean("A3", 5));
                theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreEqual(5, theEvent.Get("c.IntPrimitive"));
                env.UndeployAll();

                // Test not-in-optimization
                stmt =
                    "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean(TheString!=a[0].Id and TheString!=a[1].Id and TheString!=a[2].Id)]";
                env.CompileDeploy(stmt).AddListener("s0");

                env.SendEventBean(new SupportBean_A("A1"));
                env.SendEventBean(new SupportBean_A("A2"));
                env.SendEventBean(new SupportBean_A("A3"));
                env.SendEventBean(new SupportBean_B("B1"));

                env.SendEventBean(new SupportBean("A2", 20));
                Assert.IsFalse(env.Listener("s0").IsInvoked);
                env.SendEventBean(new SupportBean("A1", 20));
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                env.SendEventBean(new SupportBean("A6", 5));
                theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreEqual(5, theEvent.Get("c.IntPrimitive"));
                env.UndeployAll();

                // Test range-optimization
                stmt = "@Name('s0') select * from pattern [" +
                       " a=SupportBean(TheString like 'A%') until " +
                       " b=SupportBean(TheString like 'B%') -> " +
                       " c=SupportBean(IntPrimitive between a[0].IntPrimitive and a[1].IntPrimitive)" +
                       "]";
                env.CompileDeploy(stmt).AddListener("s0");

                env.SendEventBean(new SupportBean("A1", 5));
                env.SendEventBean(new SupportBean("A2", 8));
                env.SendEventBean(new SupportBean("B1", -1));

                env.SendEventBean(new SupportBean("E1", 20));
                Assert.IsFalse(env.Listener("s0").IsInvoked);
                env.SendEventBean(new SupportBean("E2", 3));
                Assert.IsFalse(env.Listener("s0").IsInvoked);

                env.SendEventBean(new SupportBean("E3", 5));
                theEvent = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreEqual(5, theEvent.Get("c.IntPrimitive"));

                env.UndeployAll();
            }
Example #8
0
            public void Run(RegressionEnvironment env)
            {
                var path = new RegressionPath();
                env.CompileDeploy("@Name('v0') create variable Object varobject = null", path);
                env.CompileDeploy(
                    "@Name('v1') create variable " + typeof(SupportBean_A).FullName + " varbean = null",
                    path);
                env.CompileDeploy("@Name('v2') create variable SupportBean_S0 vartype = null", path);
                var depIdVarobject = env.DeploymentId("v0");
                var depIdVarbean = env.DeploymentId("v1");
                var depIdVartype = env.DeploymentId("v2");

                var fields = new [] { "varobject","varbean","varbean.Id","vartype","vartype.Id" };
                env.CompileDeploy(
                    "@Name('s0') select varobject, varbean, varbean.Id, vartype, vartype.Id from SupportBean",
                    path);
                env.AddListener("s0");

                // test null
                env.SendEventBean(new SupportBean());
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {null, null, null, null, null});

                env.Milestone(0);

                // test objects
                var a1objectOne = new SupportBean_A("A1");
                var s0objectOne = new SupportBean_S0(1);
                env.Runtime.VariableService.SetVariableValue(depIdVarobject, "varobject", "abc");
                env.Runtime.VariableService.SetVariableValue(depIdVarbean, "varbean", a1objectOne);
                env.Runtime.VariableService.SetVariableValue(depIdVartype, "vartype", s0objectOne);

                env.Milestone(1);

                env.SendEventBean(new SupportBean());
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {"abc", a1objectOne, a1objectOne.Id, s0objectOne, s0objectOne.Id});

                // test on-set for Object and EventType
                var fieldsTop = new [] { "varobject","vartype","varbean" };
                env.CompileDeploy(
                    "@Name('set') on SupportBean_S0(P00='X') arrival set varobject=1, vartype=arrival, varbean=null",
                    path);
                env.AddListener("set");

                var s0objectTwo = new SupportBean_S0(2, "X");
                env.SendEventBean(s0objectTwo);
                Assert.AreEqual(1, env.Runtime.VariableService.GetVariableValue(depIdVarobject, "varobject"));
                Assert.AreEqual(s0objectTwo, env.Runtime.VariableService.GetVariableValue(depIdVartype, "vartype"));
                Assert.AreEqual(
                    s0objectTwo,
                    env.Runtime
                        .VariableService.GetVariableValue(
                            Collections.SingletonSet(new DeploymentIdNamePair(depIdVartype, "vartype")))
                        .Get(new DeploymentIdNamePair(depIdVartype, "vartype")));
                EPAssertionUtil.AssertProps(
                    env.Listener("set").AssertOneGetNewAndReset(),
                    fieldsTop,
                    new object[] {1, s0objectTwo, null});
                EPAssertionUtil.AssertProps(
                    env.GetEnumerator("set").Advance(),
                    fieldsTop,
                    new object[] {1, s0objectTwo, null});

                // set via API to null
                IDictionary<DeploymentIdNamePair, object> newValues = new Dictionary<DeploymentIdNamePair, object>();
                newValues.Put(new DeploymentIdNamePair(depIdVarobject, "varobject"), null);
                newValues.Put(new DeploymentIdNamePair(depIdVartype, "vartype"), null);
                newValues.Put(new DeploymentIdNamePair(depIdVarbean, "varbean"), null);
                env.Runtime.VariableService.SetVariableValue(newValues);
                env.SendEventBean(new SupportBean());
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {null, null, null, null, null});

                // set via API to values
                newValues.Put(new DeploymentIdNamePair(depIdVarobject, "varobject"), 10L);
                newValues.Put(new DeploymentIdNamePair(depIdVartype, "vartype"), s0objectTwo);
                newValues.Put(new DeploymentIdNamePair(depIdVarbean, "varbean"), a1objectOne);
                env.Runtime.VariableService.SetVariableValue(newValues);
                env.SendEventBean(new SupportBean());
                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    fields,
                    new object[] {10L, a1objectOne, a1objectOne.Id, s0objectTwo, s0objectTwo.Id});

                // test on-set for Bean class
                env.CompileDeploy(
                    "@Name('set-two') on SupportBean_A(Id='Y') arrival set varobject=null, vartype=null, varbean=arrival",
                    path);
                env.AddListener("set-two");
                var a1objectTwo = new SupportBean_A("Y");
                env.SendEventBean(new SupportBean_A("Y"));
                Assert.AreEqual(null, env.Runtime.VariableService.GetVariableValue(depIdVarobject, "varobject"));
                Assert.AreEqual(null, env.Runtime.VariableService.GetVariableValue(depIdVartype, "vartype"));
                Assert.AreEqual(
                    a1objectTwo,
                    env.Runtime
                        .VariableService.GetVariableValue(
                            Collections.SingletonSet(new DeploymentIdNamePair(depIdVarbean, "varbean")))
                        .Get(new DeploymentIdNamePair(depIdVarbean, "varbean")));
                EPAssertionUtil.AssertProps(
                    env.Listener("set-two").AssertOneGetNewAndReset(),
                    fieldsTop,
                    new object[] {null, null, a1objectTwo});
                EPAssertionUtil.AssertProps(
                    env.GetEnumerator("set-two").Advance(),
                    fieldsTop,
                    new object[] {null, null, a1objectTwo});

                env.UndeployAll();
            }