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