예제 #1
0
 static EventMapCore()
 {
     map = new Dictionary<string, object>();
     map.Put("MyInt", 3);
     map.Put("MyString", "some string");
     map.Put("beanA", SupportBeanComplexProps.MakeDefaultBean());
 }
            public void Run(RegressionEnvironment env)
            {
                SetupOrPattern(
                    env,
                    "a, a as myAEvent, b, b as myBEvent, a.IntPrimitive as myInt, " +
                    "a.TheString, b.SimpleProperty as simple, b.Indexed[0] as indexed, b.Nested.NestedValue as nestedVal");

                object theEvent = SupportBeanComplexProps.MakeDefaultBean();
                env.SendEventBean(theEvent);
                var eventBean = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreSame(theEvent, eventBean.Get("b"));
                Assert.AreEqual("Simple", eventBean.Get("simple"));
                Assert.AreEqual(1, eventBean.Get("indexed"));
                Assert.AreEqual("NestedValue", eventBean.Get("nestedVal"));
                Assert.IsNull(eventBean.Get("a"));
                Assert.IsNull(eventBean.Get("myAEvent"));
                Assert.IsNull(eventBean.Get("myInt"));
                Assert.IsNull(eventBean.Get("a.TheString"));

                var eventTwo = new SupportBean();
                eventTwo.IntPrimitive = 2;
                eventTwo.TheString = "test2";
                env.SendEventBean(eventTwo);
                eventBean = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreEqual(2, eventBean.Get("myInt"));
                Assert.AreEqual("test2", eventBean.Get("a.TheString"));
                Assert.IsNull(eventBean.Get("b"));
                Assert.IsNull(eventBean.Get("myBEvent"));
                Assert.IsNull(eventBean.Get("simple"));
                Assert.IsNull(eventBean.Get("indexed"));
                Assert.IsNull(eventBean.Get("nestedVal"));

                env.UndeployAll();
            }
예제 #3
0
            public void Run(RegressionEnvironment env)
            {
                // test map containing first-level property that is an array of primitive or Class
                env.CompileDeploy("@Name('s0') select P0('k1') as a from MyMappedPropertyMap");
                env.AddListener("s0");

                IDictionary<string, object> eventVal = new Dictionary<string, object>();
                eventVal.Put("k1", "v1");
                var theEvent = MakeMap(
                    new[] {
                        new object[] {"P0", eventVal}
                    });
                env.SendEventMap(theEvent, "MyMappedPropertyMap");

                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    new [] { "a" },
                    new object[] {"v1"});
                Assert.AreEqual(typeof(object), env.Statement("s0").EventType.GetPropertyType("a"));
                env.UndeployAll();

                // test map at the second level of a nested map that is an array of primitive or Class
                env.CompileDeploy("@Name('s0') select outer.P0('k1') as a from MyMappedPropertyMapOuter");
                env.AddListener("s0");

                var eventOuter = MakeMap(
                    new[] {
                        new object[] {"outer", theEvent}
                    });
                env.SendEventMap(eventOuter, "MyMappedPropertyMapOuter");

                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    new[] {"a"},
                    new object[] {"v1"}
                );
                Assert.AreEqual(typeof(object), env.Statement("s0").EventType.GetPropertyType("a"));
                env.UndeployModuleContaining("s0");

                // test map that contains a bean which has a map property
                env.CompileDeploy(
                        "@Name('s0') select outerTwo.MapProperty('xOne') as a from MyMappedPropertyMapOuterTwo")
                    .AddListener("s0");

                var eventOuterTwo = MakeMap(
                    new[] {
                        new object[] {"outerTwo", SupportBeanComplexProps.MakeDefaultBean()}
                    });
                env.SendEventMap(eventOuterTwo, "MyMappedPropertyMapOuterTwo");

                EPAssertionUtil.AssertProps(
                    env.Listener("s0").AssertOneGetNewAndReset(),
                    new [] { "a" },
                    new object[] {"yOne"});
                Assert.AreEqual(typeof(object), env.Statement("s0").EventType.GetPropertyType("a"));

                env.UndeployAll();
            }
예제 #4
0
        private void RunAssertionBean(
            RegressionEnvironment env,
            RegressionPath path,
            string epl)
        {
            env.CompileDeploy("@Name('s0') " + epl, path).AddListener("s0");

            env.SendEventBean(SupportBeanComplexProps.MakeDefaultBean());
            env.SendEventBean(new SupportBean("keyOne", 1));
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                new [] { "val0", "val1" },
                new object[] {"valueOne", 2});
            env.UndeployModuleContaining("s0");
        }
            public void Run(RegressionEnvironment env)
            {
                SetupOrPattern(env, "*");

                object theEvent = new SupportBean();
                env.SendEventBean(theEvent);
                var eventBean = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreSame(theEvent, eventBean.Get("a"));
                Assert.IsNull(eventBean.Get("b"));

                theEvent = SupportBeanComplexProps.MakeDefaultBean();
                env.SendEventBean(theEvent);
                eventBean = env.Listener("s0").AssertOneGetNewAndReset();
                Assert.AreSame(theEvent, eventBean.Get("b"));
                Assert.IsNull(eventBean.Get("a"));

                env.UndeployAll();
            }
예제 #6
0
            public void Run(RegressionEnvironment env)
            {
                var fields  = "c0".SplitCsv();
                var builder = new SupportEvalBuilder("SupportBeanComplexProps")
                              .WithExpressions(fields, "{ArrayProperty, Nested}");

                var bean = SupportBeanComplexProps.MakeDefaultBean();

                builder.WithAssertion(bean)
                .Verify(
                    "c0",
                    result => {
                    var arr = (object[])result;
                    Assert.AreSame(bean.ArrayProperty, arr[0]);
                    Assert.AreSame(bean.Nested, arr[1]);
                });

                builder.Run(env);
                env.UndeployAll();
            }
예제 #7
0
            public void Run(RegressionEnvironment env)
            {
                var stmtText = "@Name('s0') select * from pattern [every(a=SupportBean or b=SupportBeanComplexProps)]";
                var compiled = env.Compile(stmtText);
                env.Deploy(compiled).AddListener("s0");

                for (var i = 0; i < 100; i++) {
                    SendAndAssert(env);

                    var listener = env.Listener("s0");
                    listener.Reset();
                    env.UndeployModuleContaining("s0");

                    env.SendEventBean(new SupportBean());
                    env.SendEventBean(SupportBeanComplexProps.MakeDefaultBean());
                    Assert.IsFalse(listener.IsInvoked);

                    env.Deploy(compiled).AddListener("s0");
                }

                env.UndeployAll();
            }
예제 #8
0
        private static void SendAndAssert(RegressionEnvironment env)
        {
            for (var i = 0; i < 1000; i++) {
                object theEvent = null;
                if (i % 3 == 0) {
                    theEvent = new SupportBean();
                }
                else {
                    theEvent = SupportBeanComplexProps.MakeDefaultBean();
                }

                env.SendEventBean(theEvent);

                var eventBean = env.Listener("s0").AssertOneGetNewAndReset();
                if (theEvent is SupportBean) {
                    Assert.AreSame(theEvent, eventBean.Get("a"));
                    Assert.IsNull(eventBean.Get("b"));
                }
                else {
                    Assert.AreSame(theEvent, eventBean.Get("b"));
                    Assert.IsNull(eventBean.Get("a"));
                }
            }
        }