示例#1
0
        private void RunAssertion(string typePrefix, FunctionSendEventWType sender, object root, object type_1, object type_2, object type_2_1)
        {
            var typeNames  = "Type_Root,Type_1,Type_2,Type_2_1".SplitCsv();
            var statements = new EPStatement[4];
            var listeners  = new SupportUpdateListener[4];

            for (var i = 0; i < typeNames.Length; i++)
            {
                statements[i] = _epService.EPAdministrator.CreateEPL("select * from " + typePrefix + "_" + typeNames[i]);
                listeners[i]  = new SupportUpdateListener();
                statements[i].AddListener(listeners[i]);
            }

            sender.Invoke(_epService, root, typePrefix + "_" + typeNames[0]);
            EPAssertionUtil.AssertEqualsExactOrder(new bool[] { true, false, false, false }, SupportUpdateListener.GetInvokedFlagsAndReset(listeners));

            sender.Invoke(_epService, type_1, typePrefix + "_" + typeNames[1]);
            EPAssertionUtil.AssertEqualsExactOrder(new bool[] { true, true, false, false }, SupportUpdateListener.GetInvokedFlagsAndReset(listeners));

            sender.Invoke(_epService, type_2, typePrefix + "_" + typeNames[2]);
            EPAssertionUtil.AssertEqualsExactOrder(new bool[] { true, false, true, false }, SupportUpdateListener.GetInvokedFlagsAndReset(listeners));

            sender.Invoke(_epService, type_2_1, typePrefix + "_" + typeNames[3]);
            EPAssertionUtil.AssertEqualsExactOrder(new bool[] { true, false, true, true }, SupportUpdateListener.GetInvokedFlagsAndReset(listeners));

            for (var i = 0; i < statements.Length; i++)
            {
                statements[i].Dispose();
            }
        }
        private void RunAssertionConversionConfiguredType(
            EPServiceProvider epService,
            string typeNameTarget,
            string functionName,
            string typeNameOrigin,
            Type eventBeanType,
            Type underlyingType,
            object @event,
            FunctionSendEventWType sendEvent,
            string[] propertyName,
            object[] propertyValues)
        {
            // test native
            epService.EPAdministrator.CreateEPL("insert into " + typeNameTarget + " select " + typeof(SupportStaticMethodLib).FullName + "." + functionName + "(s0) from " + typeNameOrigin + " as s0");
            var stmt     = epService.EPAdministrator.CreateEPL("select * from " + typeNameTarget);
            var listener = new SupportUpdateListener();

            stmt.Events += listener.Update;

            sendEvent.Invoke(epService, @event, typeNameOrigin);

            var eventBean = listener.AssertOneGetNewAndReset();

            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(eventBean.Underlying.GetType(), underlyingType));
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(eventBean.GetType(), eventBeanType));
            EPAssertionUtil.AssertProps(eventBean, propertyName, propertyValues);

            epService.EPAdministrator.DestroyAllStatements();
        }
示例#3
0
        private static void RunAssertionConversionImplicitType(
            RegressionEnvironment env,
            RegressionPath path,
            string prefix,
            string typeNameOrigin,
            string functionName,
            Type eventTypeType,
            Type underlyingType,
            string typeNameEvent,
            object @event,
            FunctionSendEventWType sendEvent,
            string[] propertyName,
            object[] propertyValues)
        {
            string streamName = prefix + "_Stream";
            string textOne = "@Name('s1') insert into " + streamName + " select * from " + typeNameOrigin;
            string textTwo = "@Name('s2') insert into " +
                             streamName +
                             " select " +
                             typeof(SupportStaticMethodLib).FullName +
                             "." +
                             functionName +
                             "(s0) from " +
                             typeNameEvent +
                             " as s0";

            env.CompileDeploy(textOne, path).AddListener("s1");
            EventType type = env.Statement("s1").EventType;
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(type.UnderlyingType, underlyingType));

            env.CompileDeploy(textTwo, path).AddListener("s2");
            type = env.Statement("s2").EventType;
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(type.UnderlyingType, underlyingType));

            sendEvent.Invoke(env, @event, typeNameEvent);

            EventBean theEvent = env.Listener("s2").AssertOneGetNewAndReset();
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(theEvent.EventType.GetType(), eventTypeType));
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(theEvent.Underlying.GetType(), underlyingType));
            EPAssertionUtil.AssertProps(theEvent, propertyName, propertyValues);

            env.UndeployModuleContaining("s2");
            env.UndeployModuleContaining("s1");
        }
示例#4
0
        private void RunAssertion(
            RegressionEnvironment env,
            RegressionPath path,
            string typePrefix,
            FunctionSendEventWType sender,
            object root,
            object type1,
            object type2,
            object type21)
        {
            var typeNames = new [] { "Type_Root","Type_1","Type_2","Type_2_1" };
            var statements = new EPStatement[4];
            var listeners = new SupportUpdateListener[4];
            for (var i = 0; i < typeNames.Length; i++) {
                env.CompileDeploy("@Name('s" + i + "') select * from " + typePrefix + "_" + typeNames[i], path);
                statements[i] = env.Statement("s" + i);
                listeners[i] = new SupportUpdateListener();
                statements[i].AddListener(listeners[i]);
            }

            sender.Invoke(env, root, typePrefix + "_" + typeNames[0]);
            EPAssertionUtil.AssertEqualsExactOrder(
                new[] {true, false, false, false},
                GetInvokedFlagsAndReset(listeners));

            sender.Invoke(env, type1, typePrefix + "_" + typeNames[1]);
            EPAssertionUtil.AssertEqualsExactOrder(
                new[] {true, true, false, false},
                GetInvokedFlagsAndReset(listeners));

            sender.Invoke(env, type2, typePrefix + "_" + typeNames[2]);
            EPAssertionUtil.AssertEqualsExactOrder(
                new[] {true, false, true, false},
                GetInvokedFlagsAndReset(listeners));

            sender.Invoke(env, type21, typePrefix + "_" + typeNames[3]);
            EPAssertionUtil.AssertEqualsExactOrder(new[] {true, false, true, true}, GetInvokedFlagsAndReset(listeners));

            env.UndeployAll();
        }
        private void RunAssertionConversionImplicitType(EPServiceProvider epService, string prefix,
                                                        string typeNameOrigin,
                                                        string functionName,
                                                        Type eventTypeType,
                                                        Type underlyingType,
                                                        string typeNameEvent,
                                                        object @event,
                                                        FunctionSendEventWType sendEvent,
                                                        string[] propertyName,
                                                        object[] propertyValues)
        {
            var streamName = prefix + "_Stream";
            var textOne    = "insert into " + streamName + " select * from " + typeNameOrigin;
            var textTwo    = "insert into " + streamName + " select " + typeof(SupportStaticMethodLib).FullName + "." + functionName + "(s0) from " + typeNameEvent + " as s0";

            var stmtOne     = epService.EPAdministrator.CreateEPL(textOne);
            var listenerOne = new SupportUpdateListener();

            stmtOne.Events += listenerOne.Update;
            var type = stmtOne.EventType;

            Assert.AreEqual(underlyingType, type.UnderlyingType);

            var stmtTwo     = epService.EPAdministrator.CreateEPL(textTwo);
            var listenerTwo = new SupportUpdateListener();

            stmtTwo.Events += listenerTwo.Update;
            type            = stmtTwo.EventType;
            Assert.AreEqual(underlyingType, type.UnderlyingType);

            sendEvent.Invoke(epService, @event, typeNameEvent);

            var theEvent = listenerTwo.AssertOneGetNewAndReset();

            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(theEvent.EventType.GetType(), eventTypeType));
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(theEvent.Underlying.GetType(), underlyingType));
            EPAssertionUtil.AssertProps(theEvent, propertyName, propertyValues);

            epService.EPAdministrator.DestroyAllStatements();
        }
示例#6
0
        private static void RunAssertionConversionConfiguredType(
            RegressionEnvironment env,
            RegressionPath path,
            string typeNameTarget,
            string functionName,
            string typeNameOrigin,
            Type eventBeanType,
            Type underlyingType,
            object @event,
            FunctionSendEventWType sendEvent,
            string[] propertyName,
            object[] propertyValues)
        {
            // test native
            env.CompileDeploy(
                "@Name('insert') insert into " +
                typeNameTarget +
                " select " +
                typeof(SupportStaticMethodLib).FullName +
                "." +
                functionName +
                "(s0) from " +
                typeNameOrigin +
                " as s0",
                path);
            env.CompileDeploy("@Name('s0') select * from " + typeNameTarget, path).AddListener("s0");

            sendEvent.Invoke(env, @event, typeNameOrigin);

            EventBean eventBean = env.Listener("s0").AssertOneGetNewAndReset();
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(eventBean.Underlying.GetType(), underlyingType));
            Assert.IsTrue(TypeHelper.IsSubclassOrImplementsInterface(eventBean.GetType(), eventBeanType));
            EPAssertionUtil.AssertProps(eventBean, propertyName, propertyValues);

            env.UndeployModuleContaining("s0");
            env.UndeployModuleContaining("insert");
        }