コード例 #1
0
        private void RunAssertionPassUnderlying(
            RegressionEnvironment env,
            string typename,
            FunctionSendEventIntString send,
            RegressionPath path)
        {
            var epl = "@Name('s0') select * from " + typename;

            env.CompileDeploy(epl, path).AddListener("s0");

            var fields = "MyInt,MyString".SplitCsv();

            Assert.AreEqual(typeof(int?), env.Statement("s0").EventType.GetPropertyType("MyInt").GetBoxedType());
            Assert.AreEqual(typeof(string), env.Statement("s0").EventType.GetPropertyType("MyString"));

            var eventOne = send.Invoke(typename, env, 3, "some string");

            var @event = env.Listener("s0").AssertOneGetNewAndReset();

            SupportEventTypeAssertionUtil.AssertConsistency(@event);
            AssertUnderlying(typename, eventOne, @event.Underlying);
            EPAssertionUtil.AssertProps(@event, fields, new object[] { 3, "some string" });

            var eventTwo = send.Invoke(typename, env, 4, "other string");

            @event = env.Listener("s0").AssertOneGetNewAndReset();
            AssertUnderlying(typename, eventTwo, @event.Underlying);
            EPAssertionUtil.AssertProps(@event, fields, new object[] { 4, "other string" });

            env.UndeployModuleContaining("s0");
        }
コード例 #2
0
        private void RunAssertionPropertiesWGetter(
            EPServiceProvider epService, string typename, FunctionSendEventIntString send)
        {
            var epl =
                "select myInt, Exists(myInt) as exists_myInt, myString, Exists(myString) as exists_myString from " +
                typename;
            var statement = epService.EPAdministrator.CreateEPL(epl);
            var listener = new SupportUpdateListener();
            statement.Events += listener.Update;
            var fields = "myInt,exists_myInt,myString,exists_myString".Split(',');

            Assert.AreEqual(typeof(int?), statement.EventType.GetPropertyType("myInt").GetBoxedType());
            Assert.AreEqual(typeof(string), statement.EventType.GetPropertyType("myString"));
            Assert.AreEqual(typeof(bool?), statement.EventType.GetPropertyType("exists_myInt"));
            Assert.AreEqual(typeof(bool?), statement.EventType.GetPropertyType("exists_myString"));

            send.Invoke(epService, 3, "some string");

            var @event = listener.AssertOneGetNewAndReset();
            RunAssertionEventInvalidProp(@event);
            EPAssertionUtil.AssertProps(@event, fields, new object[] {3, true, "some string", true});

            send.Invoke(epService, 4, "other string");
            @event = listener.AssertOneGetNewAndReset();
            EPAssertionUtil.AssertProps(@event, fields, new object[] {4, true, "other string", true});

            statement.Dispose();
        }
コード例 #3
0
        private void RunAssertionPropertiesWGetter(
            RegressionEnvironment env,
            string typename,
            FunctionSendEventIntString send,
            RegressionPath path)
        {
            var epl = "@Name('s0') select MyInt, exists(MyInt) as exists_MyInt, MyString, exists(MyString) as exists_MyString from " + typename;

            env.CompileDeploy(epl, path).AddListener("s0");

            var fields = "MyInt,exists_MyInt,MyString,exists_MyString".SplitCsv();

            var eventType = env.Statement("s0").EventType;

            Assert.AreEqual(typeof(int?), Boxing.GetBoxedType(eventType.GetPropertyType("MyInt")));
            Assert.AreEqual(typeof(string), eventType.GetPropertyType("MyString"));
            Assert.AreEqual(typeof(bool?), eventType.GetPropertyType("exists_MyInt"));
            Assert.AreEqual(typeof(bool?), eventType.GetPropertyType("exists_MyString"));

            send.Invoke(typename, env, 3, "some string");

            var @event = env.Listener("s0").AssertOneGetNewAndReset();

            RunAssertionEventInvalidProp(@event);
            EPAssertionUtil.AssertProps(@event, fields, new object[] { 3, true, "some string", true });

            send.Invoke(typename, env, 4, "other string");
            @event = env.Listener("s0").AssertOneGetNewAndReset();
            EPAssertionUtil.AssertProps(@event, fields, new object[] { 4, true, "other string", true });

            env.UndeployModuleContaining("s0");
        }
コード例 #4
0
        private void RunAssertionPassUnderlying(
            EPServiceProvider epService, string typename, FunctionSendEventIntString send)
        {
            var epl = "select * from " + typename;
            var statement = epService.EPAdministrator.CreateEPL(epl);
            var listener = new SupportUpdateListener();
            statement.Events += listener.Update;
            var fields = "myInt,myString".Split(',');

            Assert.AreEqual(typeof(int?), statement.EventType.GetPropertyType("myInt").GetBoxedType());
            Assert.AreEqual(typeof(string), statement.EventType.GetPropertyType("myString"));

            var eventOne = send.Invoke(epService, 3, "some string");

            var @event = listener.AssertOneGetNewAndReset();
            SupportEventTypeAssertionUtil.AssertConsistency(@event);
            Assert.AreEqual(eventOne, @event.Underlying);
            EPAssertionUtil.AssertProps(@event, fields, new object[] {3, "some string"});

            var eventTwo = send.Invoke(epService, 4, "other string");
            @event = listener.AssertOneGetNewAndReset();
            Assert.AreEqual(eventTwo, @event.Underlying);
            EPAssertionUtil.AssertProps(@event, fields, new object[] {4, "other string"});

            statement.Dispose();
        }