private static void TryAssertionExcludeEndpoints( RegressionEnvironment env, RegressionPath path, string fields, AtomicLong milestone) { var fieldsCurrentTs = new [] { "val0","val1","val2","val3","val4","val5","val6","val7" }; var eplCurrentTS = "@Name('s0') select " + "current_timestamp.between(" + fields + ", true, true) as val0, " + "current_timestamp.between(" + fields + ", true, false) as val1, " + "current_timestamp.between(" + fields + ", false, true) as val2, " + "current_timestamp.between(" + fields + ", false, false) as val3, " + "current_timestamp.between(" + fields + ", VAR_TRUE, VAR_TRUE) as val4, " + "current_timestamp.between(" + fields + ", VAR_TRUE, VAR_FALSE) as val5, " + "current_timestamp.between(" + fields + ", VAR_FALSE, VAR_TRUE) as val6, " + "current_timestamp.between(" + fields + ", VAR_FALSE, VAR_FALSE) as val7 " + "from SupportTimeStartEndA"; env.CompileDeploy(eplCurrentTS, path).AddListener("s0"); LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsCurrentTs, typeof(bool?)); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, false); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 1)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {true, false, true, false, true, false, true, false}); env.MilestoneInc(milestone); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 2)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, true); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 1)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] {true, true, false, false, true, true, false, false}); env.UndeployModuleContaining("s0"); // test calendar field and constants var fieldsConstants = new [] { "val0","val1","val2","val3" }; var eplConstants = "@Name('s0') select " + "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), true, true) as val0, " + "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), true, false) as val1, " + "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), false, true) as val2, " + "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), false, false) as val3 " + "from SupportTimeStartEndA"; env.CompileDeploy(eplConstants).AddListener("s0"); LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsConstants, typeof(bool?)); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, new object[] {false, false, false, false}); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:00.000", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, new object[] {true, true, false, false}); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:05.000", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, new object[] {true, true, true, true}); env.MilestoneInc(milestone); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:59.999", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, new object[] {true, true, true, true}); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.000", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, new object[] {true, false, true, false}); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.001", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, new object[] {false, false, false, false}); env.UndeployModuleContaining("s0"); }
public void TestMinMaxBy() { String[] fields = "val0,val1,val2,val3".SplitCsv(); String eplFragment = "select " + "contained.MinBy(x => p00) as val0," + "contained.MaxBy(x => p00) as val1," + "contained.MinBy(x => p00).id as val2," + "contained.MaxBy(x => p00).P00 as val3 " + "from Bean"; EPStatement stmtFragment = _epService.EPAdministrator.CreateEPL(eplFragment); stmtFragment.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(SupportBean_ST0), typeof(SupportBean_ST0), typeof(string), typeof(int?) }); SupportBean_ST0_Container bean = SupportBean_ST0_Container.Make2Value("E1,12", "E2,11", "E2,2"); _epService.EPRuntime.SendEvent(bean); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { bean.Contained[2], bean.Contained[0], "E2", 12 }); bean = SupportBean_ST0_Container.Make2Value("E1,12"); _epService.EPRuntime.SendEvent(bean); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { bean.Contained[0], bean.Contained[0], "E1", 12 }); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value(null)); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { null, null, null, null }); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value()); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { null, null, null, null }); stmtFragment.Dispose(); // test scalar-coll with lambda String[] fieldsLambda = "val0,val1".Split(','); _epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(TestEnumMinMax.MyService).FullName, "ExtractNum"); String eplLambda = "select " + "Strvals.minBy(v => extractNum(v)) as val0, " + "Strvals.maxBy(v => extractNum(v)) as val1 " + "from SupportCollection"; EPStatement stmtLambda = _epService.EPAdministrator.CreateEPL(eplLambda); stmtLambda.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new [] { typeof(string), typeof(string) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { "E1", "E5" }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { "E1", "E1" }); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportCollection.MakeString(null)); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { null, null }); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { null, null }); }
public void Run(RegressionEnvironment env) { var startTime = "2002-05-30T09:00:00.000"; env.AdvanceTime(DateTimeParsingFunctions.ParseDefaultMSec(startTime)); var fieldsCurrentTs = new [] { "val0","val1","val2","val3","val4","val5","val6","val7" }; var eplCurrentTS = "@Name('s0') select " + "current_timestamp.after(LongdateStart) as val0, " + "current_timestamp.between(LongdateStart, LongdateEnd) as val1, " + "current_timestamp.between(DateTimeStart, DateTimeExEnd) as val2, " + "current_timestamp.between(DateTimeExStart, DateTimeEnd) as val3, " + "current_timestamp.between(DateTimeStart, DateTimeEnd) as val4, " + "current_timestamp.between(DateTimeExStart, DateTimeExEnd) as val5, " + "current_timestamp.between(DateTimeExEnd, DateTimeExStart) as val6, " + "current_timestamp.between(DateTimeOffsetStart, DateTimeOffsetEnd) as val7 " + "from SupportTimeStartEndA"; env.CompileDeploy(eplCurrentTS).AddListener("s0"); LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsCurrentTs, typeof(bool?)); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { true, // LongdateStart (val0) false, // LongdateStart - LongdateEnd false, // DateTimeStart - DateTimeExEnd false, // DateTimeExStart - DateTimeEnd false, // DateTimeStart - DateTimeEnd false, // DateTimeExStart - DateTimeExEnd false, // DateTimeExEnd - DateTimeExStart false // DateTimeOffsetStart - DateTimeOffsetEnd }); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 1)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { true, // LongdateStart (val0) true, // LongdateStart - LongdateEnd true, // DateTimeStart - DateTimeExEnd true, // DateTimeExStart - DateTimeEnd true, // DateTimeStart - DateTimeEnd true, // DateTimeExStart - DateTimeExEnd true, // DateTimeExEnd - DateTimeExStart true // DateTimeOffsetStart - DateTimeOffsetEnd }); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 100)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { true, // LongdateStart (val0) true, // LongdateStart - LongdateEnd true, // DateTimeStart - DateTimeExEnd true, // DateTimeExStart - DateTimeEnd true, // DateTimeStart - DateTimeEnd true, // DateTimeExStart - DateTimeExEnd true, // DateTimeExEnd - DateTimeExStart true // DateTimeOffsetStart - DateTimeOffsetEnd }); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 0)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { false, // LongdateStart (val0) true, // LongdateStart - LongdateEnd true, // DateTimeStart - DateTimeExEnd true, // DateTimeExStart - DateTimeEnd true, // DateTimeStart - DateTimeEnd true, // DateTimeExStart - DateTimeExEnd true, // DateTimeExEnd - DateTimeExStart true // DateTimeOffsetStart - DateTimeOffsetEnd }); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 100)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { false, // LongdateStart (val0) true, // LongdateStart - LongdateEnd true, // DateTimeStart - DateTimeExEnd true, // DateTimeExStart - DateTimeEnd true, // DateTimeStart - DateTimeEnd true, // DateTimeExStart - DateTimeExEnd true, // DateTimeExEnd - DateTimeExStart true // DateTimeOffsetStart - DateTimeOffsetEnd }); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.001", 100)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { false, // LongdateStart (val0) false, // LongdateStart - LongdateEnd false, // DateTimeStart - DateTimeExEnd false, // DateTimeExStart - DateTimeEnd false, // DateTimeStart - DateTimeEnd false, // DateTimeExStart - DateTimeExEnd false, // DateTimeExEnd - DateTimeExStart false // DateTimeOffsetStart - DateTimeOffsetEnd }); env.UndeployAll(); // test calendar field and constants var fieldsConstants = new [] { "val0","val1","val2","val3","val4" }; var eplConstants = "@Name('s0') select " + "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val0, " + "DateTimeStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val1, " + "DateTimeExStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val2, " + "DateTimeOffsetStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000')) as val3, " + "LongdateStart.between(DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:01:00.000'), DateTimeParsingFunctions.ParseDefaultEx('2002-05-30T09:00:00.000')) as val4 " + "from SupportTimeStartEndA"; env.CompileDeployAddListenerMile(eplConstants, "s0", 1); LambdaAssertionUtil.AssertTypesAllSame(env.Statement("s0").EventType, fieldsConstants, typeof(bool?)); env.SendEventBean(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, false); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:00.000", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, true); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:05.000", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, true); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:59.999", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, true); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.000", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, true); env.SendEventBean(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.001", 0)); EPAssertionUtil.AssertPropsAllValuesSame( env.Listener("s0").AssertOneGetNewAndReset(), fieldsConstants, false); env.UndeployAll(); }
private void RunAssertionTakeEvents(EPServiceProvider epService) { string[] fields = "val0,val1,val2,val3,val4,val5".Split(','); string epl = "select " + "Contained.take(2) as val0," + "Contained.take(1) as val1," + "Contained.take(0) as val2," + "Contained.take(-1) as val3," + "Contained.takeLast(2) as val4," + "Contained.takeLast(1) as val5" + " from Bean"; EPStatement stmt = epService.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmt.EventType, fields, new Type[] { typeof(ICollection <SupportBean_ST0>), typeof(ICollection <SupportBean_ST0>), typeof(ICollection <SupportBean_ST0>), typeof(ICollection <SupportBean_ST0>), typeof(ICollection <SupportBean_ST0>), typeof(ICollection <SupportBean_ST0>) }); epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,2", "E3,3")); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E1,E2"); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val2", ""); LambdaAssertionUtil.AssertST0Id(listener, "val3", ""); LambdaAssertionUtil.AssertST0Id(listener, "val4", "E2,E3"); LambdaAssertionUtil.AssertST0Id(listener, "val5", "E3"); listener.Reset(); epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,2")); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E1,E2"); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val2", ""); LambdaAssertionUtil.AssertST0Id(listener, "val3", ""); LambdaAssertionUtil.AssertST0Id(listener, "val4", "E1,E2"); LambdaAssertionUtil.AssertST0Id(listener, "val5", "E2"); listener.Reset(); epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1")); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val2", ""); LambdaAssertionUtil.AssertST0Id(listener, "val3", ""); LambdaAssertionUtil.AssertST0Id(listener, "val4", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val5", "E1"); listener.Reset(); epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value()); foreach (string field in fields) { LambdaAssertionUtil.AssertST0Id(listener, field, ""); } listener.Reset(); epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value(null)); foreach (string field in fields) { LambdaAssertionUtil.AssertST0Id(listener, field, null); } listener.Reset(); stmt.Dispose(); }
private void RunAssertionSetLogicWithEvents(EPServiceProvider epService) { string epl = "expression last10A {" + " (select * from SupportBean_ST0(key0 like 'A%')#length(2)) " + "}" + "expression last10NonZero {" + " (select * from SupportBean_ST0(p00 > 0)#length(2)) " + "}" + "select " + "last10A().except(last10NonZero()) as val0," + "last10A().intersect(last10NonZero()) as val1, " + "last10A().union(last10NonZero()) as val2 " + "from SupportBean"; EPStatement stmt = epService.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmt.EventType, "val0".Split(','), new Type[] { typeof(ICollection <SupportBean_ST0>) }); epService.EPRuntime.SendEvent(new SupportBean_ST0("E1", "A1", 10)); // in both epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(listener, "val0", ""); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val2", "E1,E1"); listener.Reset(); epService.EPRuntime.SendEvent(new SupportBean_ST0("E2", "A1", 0)); epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E2"); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val2", "E1,E2,E1"); listener.Reset(); epService.EPRuntime.SendEvent(new SupportBean_ST0("E3", "B1", 0)); epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E2"); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(listener, "val2", "E1,E2,E1"); listener.Reset(); epService.EPRuntime.SendEvent(new SupportBean_ST0("E4", "A2", -1)); epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E2,E4"); LambdaAssertionUtil.AssertST0Id(listener, "val1", ""); LambdaAssertionUtil.AssertST0Id(listener, "val2", "E2,E4,E1"); listener.Reset(); epService.EPRuntime.SendEvent(new SupportBean_ST0("E5", "A3", -2)); epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(listener, "val0", "E4,E5"); LambdaAssertionUtil.AssertST0Id(listener, "val1", ""); LambdaAssertionUtil.AssertST0Id(listener, "val2", "E4,E5,E1"); listener.Reset(); epService.EPRuntime.SendEvent(new SupportBean_ST0("E6", "A6", 11)); // in both epService.EPRuntime.SendEvent(new SupportBean_ST0("E7", "A7", 12)); // in both epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(listener, "val0", ""); LambdaAssertionUtil.AssertST0Id(listener, "val1", "E6,E7"); LambdaAssertionUtil.AssertST0Id(listener, "val2", "E6,E7,E6,E7"); listener.Reset(); stmt.Dispose(); }
private void RunAssertionIncludeEndpoints(EPServiceProvider epService) { string startTime = "2002-05-30T09:00:00.000"; epService.EPRuntime.SendEvent(new CurrentTimeEvent(DateTimeParser.ParseDefaultMSec(startTime))); string[] fieldsCurrentTs = "val0,val1,val2,val3,val4,val5,val6".Split(','); string eplCurrentTS = "select " + "current_timestamp.after(longdateStart) as val0, " + "current_timestamp.between(longdateStart, longdateEnd) as val1, " + "current_timestamp.between(utildateStart, caldateEnd) as val2, " + "current_timestamp.between(caldateStart, utildateEnd) as val3, " + "current_timestamp.between(utildateStart, utildateEnd) as val4, " + "current_timestamp.between(caldateStart, caldateEnd) as val5, " + "current_timestamp.between(caldateEnd, caldateStart) as val6 " + "from SupportTimeStartEndA"; EPStatement stmtCurrentTs = epService.EPAdministrator.CreateEPL(eplCurrentTS); var listener = new SupportUpdateListener(); stmtCurrentTs.Events += listener.Update; LambdaAssertionUtil.AssertTypesAllSame(stmtCurrentTs.EventType, fieldsCurrentTs, typeof(bool?)); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { true, false, false, false, false, false, false }); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 1)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { true, true, true, true, true, true, true }); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 100)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { true, true, true, true, true, true, true }); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 0)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { false, true, true, true, true, true, true }); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.000", 100)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { false, true, true, true, true, true, true }); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T09:00:00.001", 100)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsCurrentTs, new object[] { false, false, false, false, false, false, false }); stmtCurrentTs.Dispose(); // test calendar field and constants epService.EPAdministrator.Configuration.AddImport(typeof(DateTime)); string[] fieldsConstants = "val0,val1,val2,val5".Split(','); string eplConstants = "select " + "longdateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:00:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:01:00.000')) as val0, " + "utildateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:00:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:01:00.000')) as val1, " + "caldateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:00:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:01:00.000')) as val2, " + "longdateStart.between(DateTimeParser.ParseDefault('2002-05-30T09:01:00.000'), DateTimeParser.ParseDefault('2002-05-30T09:00:00.000')) as val5 " + "from SupportTimeStartEndA"; EPStatement stmtConstants = epService.EPAdministrator.CreateEPL(eplConstants); stmtConstants.Events += listener.Update; LambdaAssertionUtil.AssertTypesAllSame(stmtConstants.EventType, fieldsConstants, typeof(bool?)); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E1", "2002-05-30T08:59:59.999", 0)); EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, false); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:00.000", 0)); EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:05.000", 0)); EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:00:59.999", 0)); EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.000", 0)); EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, true); epService.EPRuntime.SendEvent(SupportTimeStartEndA.Make("E2", "2002-05-30T09:01:00.001", 0)); EPAssertionUtil.AssertPropsAllValuesSame(listener.AssertOneGetNewAndReset(), fieldsConstants, false); stmtConstants.Dispose(); }
public void Run(RegressionEnvironment env) { var startTime = "2002-05-30T09:00:00.000"; env.AdvanceTime(DateTimeParsingFunctions.ParseDefaultMSec(startTime)); var fields = new [] { "val0","val1","val2","val3", "val4" }; var epl = "" + "create variable int varyear;\n" + "create variable int varmonth;\n" + "create variable int varday;\n" + "@Name('s0') select " + "current_timestamp.withDate(varyear, varmonth, varday) as val0," + "LongDate.withDate(varyear, varmonth, varday) as val1," + "DateTimeEx.withDate(varyear, varmonth, varday) as val2," + "DateTimeOffset.withDate(varyear, varmonth, varday) as val3," + "DateTime.withDate(varyear, varmonth, varday) as val4" + " from SupportDateTime"; env.CompileDeploy(epl).AddListener("s0"); var deployId = env.DeploymentId("s0"); LambdaAssertionUtil.AssertTypes( env.Statement("s0").EventType, fields, new[] { typeof(long?), typeof(long?), typeof(DateTimeEx), typeof(DateTimeOffset?), typeof(DateTime?), }); env.SendEventBean(SupportDateTime.Make(null)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new[] { SupportDateTime.GetValueCoerced(startTime, "long"), null, null, null, null }); var expectedTime = "2004-09-03T09:00:00.000"; env.Runtime.VariableService.SetVariableValue(deployId, "varyear", 2004); env.Runtime.VariableService.SetVariableValue(deployId, "varmonth", 9); env.Runtime.VariableService.SetVariableValue(deployId, "varday", 3); env.SendEventBean(SupportDateTime.Make(startTime)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, SupportDateTime.GetArrayCoerced(expectedTime, "long", "long", "dtx", "dto", "date")); expectedTime = "2002-09-30T09:00:00.000"; env.Runtime.VariableService.SetVariableValue(deployId, "varyear", null); env.Runtime.VariableService.SetVariableValue(deployId, "varmonth", 9); env.Runtime.VariableService.SetVariableValue(deployId, "varday", null); env.SendEventBean(SupportDateTime.Make(startTime)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, SupportDateTime.GetArrayCoerced(expectedTime, "long", "long", "dtx", "dto", "date")); env.UndeployAll(); }
private void RunAssertionUDFStaticMethod(EPServiceProvider epService) { var fields = "val1,val2,val3,val4".Split(','); epService.EPAdministrator.Configuration.AddImport(typeof(SupportBean_ST0_Container)); var epl = "select " + "SupportBean_ST0_Container.MakeSampleList().where(x => x.p00 < 5) as val1, " + "SupportBean_ST0_Container.MakeSampleArray().where(x => x.p00 < 5) as val2, " + "MakeSampleList().where(x => x.p00 < 5) as val3, " + "MakeSampleArray().where(x => x.p00 < 5) as val4 " + "from SupportBean#length(2) as sb"; var stmt = epService.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; SupportBean_ST0_Container.Samples = new[] {"E1,1", "E2,20", "E3,3"}; epService.EPRuntime.SendEvent(new SupportBean()); foreach (var field in fields) { var result = listener.AssertOneGetNew().Get(field).UnwrapIntoArray<SupportBean_ST0>(); Assert.AreEqual(2, result.Length, "Failed for field " + field); } listener.Reset(); SupportBean_ST0_Container.Samples = null; epService.EPRuntime.SendEvent(new SupportBean()); foreach (var field in fields) { Assert.IsNull(listener.AssertOneGetNew().Get(field)); } listener.Reset(); SupportBean_ST0_Container.Samples = new string[0]; epService.EPRuntime.SendEvent(new SupportBean()); foreach (var field in fields) { var result = listener.AssertOneGetNew().Get(field).UnwrapIntoArray<SupportBean_ST0>(); Assert.AreEqual(0, result.Length); } listener.Reset(); stmt.Dispose(); // test UDF returning scalar values collection fields = "val0,val1,val2,val3".Split(','); epService.EPAdministrator.Configuration.AddImport(typeof(SupportCollection)); var eplScalar = "select " + "SupportCollection.MakeSampleListString().where(x => x != 'E1') as val0, " + "SupportCollection.MakeSampleArrayString().where(x => x != 'E1') as val1, " + "MakeSampleListString().where(x => x != 'E1') as val2, " + "MakeSampleArrayString().where(x => x != 'E1') as val3 " + "from SupportBean#length(2) as sb"; var stmtScalar = epService.EPAdministrator.CreateEPL(eplScalar); stmtScalar.Events += listener.Update; LambdaAssertionUtil.AssertTypes( stmtScalar.EventType, fields, new[] { typeof(ICollection<string>), typeof(ICollection<string>), typeof(ICollection<string>), typeof(ICollection<string>) }); SupportCollection.SampleCSV = "E1,E2,E3"; epService.EPRuntime.SendEvent(new SupportBean()); foreach (var field in fields) { LambdaAssertionUtil.AssertValuesArrayScalar(listener, field, "E2", "E3"); } listener.Reset(); SupportCollection.SampleCSV = null; epService.EPRuntime.SendEvent(new SupportBean()); foreach (var field in fields) { LambdaAssertionUtil.AssertValuesArrayScalar(listener, field, null); } listener.Reset(); SupportCollection.SampleCSV = ""; epService.EPRuntime.SendEvent(new SupportBean()); foreach (var field in fields) { LambdaAssertionUtil.AssertValuesArrayScalar(listener, field); } listener.Reset(); stmtScalar.Dispose(); }
public void TestTakeWhileEvents() { String[] fields = "val0,val1,val2,val3".Split(','); String epl = "select " + "contained.TakeWhile(x => x.P00 > 0) as val0," + "contained.TakeWhile( (x, i) => x.P00 > 0 and i<2) as val1," + "contained.TakeWhileLast(x => x.P00 > 0) as val2," + "contained.TakeWhileLast( (x, i) => x.P00 > 0 and i<2) as val3" + " from Bean"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(epl); stmt.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmt.EventType, fields, new Type[] { typeof(ICollection <object>), typeof(ICollection <object>), typeof(ICollection <object>), typeof(ICollection <object>) }); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,2", "E3,3")); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1,E2,E3"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1,E2"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E2,E3"); LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E2,E3"); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,0", "E2,2", "E3,3")); LambdaAssertionUtil.AssertST0Id(_listener, "val0", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val1", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E2,E3"); LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E2,E3"); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,0", "E3,3")); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E3"); LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E3"); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1", "E2,1", "E3,0")); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1,E2"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1,E2"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val3", ""); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value("E1,1")); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val3", "E1"); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value()); foreach (String field in fields) { LambdaAssertionUtil.AssertST0Id(_listener, field, ""); } _listener.Reset(); _epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make2Value(null)); foreach (String field in fields) { LambdaAssertionUtil.AssertST0Id(_listener, field, null); } _listener.Reset(); }
public void Run(RegressionEnvironment env) { var fields = new [] { "val0","val1","val2","val3","val4","val5","val6" }; var eplFragment = "@Name('s0') select " + "DateTimeOffset.roundHalf('msec') as val0," + "DateTimeOffset.roundHalf('sec') as val1," + "DateTimeOffset.roundHalf('minutes') as val2," + "DateTimeOffset.roundHalf('hour') as val3," + "DateTimeOffset.roundHalf('day') as val4," + "DateTimeOffset.roundHalf('month') as val5," + "DateTimeOffset.roundHalf('year') as val6" + " from SupportDateTime"; env.CompileDeploy(eplFragment).AddListener("s0"); LambdaAssertionUtil.AssertTypes( env.Statement("s0").EventType, fields, new[] { typeof(DateTimeOffset?), typeof(DateTimeOffset?), typeof(DateTimeOffset?), typeof(DateTimeOffset?), typeof(DateTimeOffset?), typeof(DateTimeOffset?), typeof(DateTimeOffset?) }); string[] expected = { "2002-05-30T15:30:02.550", "2002-05-30T15:30:03.000", "2002-05-30T15:30:00.000", "2002-05-30T16:00:00.00", "2002-05-31T00:00:00.000", "2002-06-01T00:00:00.000", "2002-01-01T00:00:00.000" }; var startTime = "2002-05-30T15:30:02.550"; env.SendEventBean(SupportDateTime.Make(startTime)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, SupportDateTime.GetArrayCoerced(expected, "dto")); // test rounding up/down env.UndeployAll(); fields = new [] { "val0" }; eplFragment = "@Name('s0') select DateTimeOffset.roundHalf('min') as val0 from SupportDateTime"; env.CompileDeployAddListenerMile(eplFragment, "s0", 1); env.SendEventBean(SupportDateTime.Make("2002-05-30T15:30:29.999")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new[] {SupportDateTime.GetValueCoerced("2002-05-30T15:30:00.000", "dto")}); env.SendEventBean(SupportDateTime.Make("2002-05-30T15:30:30.000")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new[] {SupportDateTime.GetValueCoerced("2002-05-30T15:31:00.000", "dto")}); env.SendEventBean(SupportDateTime.Make("2002-05-30T15:30:30.001")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new[] {SupportDateTime.GetValueCoerced("2002-05-30T15:31:00.000", "dto")}); env.UndeployAll(); }
private void RunAssertionSumOfScalar(EPServiceProvider epService) { string[] fields = "val0,val1".Split(','); string eplFragment = "select " + "Intvals.sumOf() as val0, " + "Bdvals.sumOf() as val1 " + "from SupportCollection"; EPStatement stmtFragment = epService.EPAdministrator.CreateEPL(eplFragment); var listener = new SupportUpdateListener(); stmtFragment.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(int?), typeof(decimal?) }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("1,4,5")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 1 + 4 + 5, 1m + 4m + 5m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3,4")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 3 + 4, 3m + 4m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 3, 3m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { null, null }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric(null)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { null, null }); stmtFragment.Dispose(); // test average with lambda epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(ExecEnumMinMax.MyService), "ExtractNum"); epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractDecimal", typeof(ExecEnumMinMax.MyService), "ExtractDecimal"); // lambda with string-array input string[] fieldsLambda = "val0,val1".Split(','); string eplLambda = "select " + "Strvals.sumOf(v => extractNum(v)) as val0, " + "Strvals.sumOf(v => extractDecimal(v)) as val1 " + "from SupportCollection"; EPStatement stmtLambda = epService.EPAdministrator.CreateEPL(eplLambda); stmtLambda.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new Type[] { typeof(int?), typeof(decimal?) }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 2 + 1 + 5 + 4, 2m + 1m + 5m + 4m }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 1, 1m }); epService.EPRuntime.SendEvent(SupportCollection.MakeString(null)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null }); stmtLambda.Dispose(); }
public void TestSetLogicWithEvents() { String epl = "expression last10A {" + " (select * from SupportBean_ST0(key0 like 'A%').win:length(2)) " + "}" + "expression last10NonZero {" + " (select * from SupportBean_ST0(p00 > 0).win:length(2)) " + "}" + "select " + "last10A().except(last10NonZero()) as val0," + "last10A().intersect(last10NonZero()) as val1, " + "last10A().union(last10NonZero()) as val2 " + "from SupportBean"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(epl); stmt.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmt.EventType, "val0".Split(','), new Type[] { typeof(ICollection <object>) } ); _epService.EPRuntime.SendEvent(new SupportBean_ST0("E1", "A1", 10)); // in both _epService.EPRuntime.SendEvent( new SupportBean()); LambdaAssertionUtil.AssertST0Id(_listener, "val0", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E1"); _listener.Reset(); _epService.EPRuntime.SendEvent(new SupportBean_ST0("E2", "A1", 0)); _epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E2"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E2,E1"); _listener.Reset(); _epService.EPRuntime.SendEvent(new SupportBean_ST0("E3", "B1", 0)); _epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E2"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E1"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E1,E2,E1"); _listener.Reset(); _epService.EPRuntime.SendEvent(new SupportBean_ST0("E4", "A2", -1)); _epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E2,E4"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E2,E4,E1"); _listener.Reset(); _epService.EPRuntime.SendEvent(new SupportBean_ST0("E5", "A3", -2)); _epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(_listener, "val0", "E4,E5"); LambdaAssertionUtil.AssertST0Id(_listener, "val1", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E4,E5,E1"); _listener.Reset(); _epService.EPRuntime.SendEvent(new SupportBean_ST0("E6", "A6", 11)); // in both _epService.EPRuntime.SendEvent( new SupportBean_ST0("E7", "A7", 12)); // in both _epService.EPRuntime.SendEvent(new SupportBean()); LambdaAssertionUtil.AssertST0Id(_listener, "val0", ""); LambdaAssertionUtil.AssertST0Id(_listener, "val1", "E6,E7"); LambdaAssertionUtil.AssertST0Id(_listener, "val2", "E6,E7,E6,E7"); _listener.Reset(); }