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(); }
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"); }
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(); }
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"); }