private static void SendSupportBean_A( RegressionEnvironment env, string id) { var bean = new SupportBean_A(id); env.SendEventBean(bean); }
public void Run(RegressionEnvironment env) { var stmt = "@Name('s0') select a, b, a[0] as a0, a[0].Id as a0Id, a[1] as a1, a[1].Id as a1Id, a[2] as a2, a[2].Id as a2Id from pattern [a=SupportBean_A until b=SupportBean_B]"; env.CompileDeploy(stmt).AddListener("s0"); env.Milestone(0); var eventA1 = new SupportBean_A("A1"); env.SendEventBean(eventA1); env.Milestone(1); var eventA2 = new SupportBean_A("A2"); env.SendEventBean(eventA2); Assert.IsFalse(env.Listener("s0").IsInvoked); env.Milestone(2); var eventB1 = new SupportBean_B("B1"); env.SendEventBean(eventB1); var theEvent = env.Listener("s0").AssertOneGetNewAndReset(); EPAssertionUtil.AssertEqualsExactOrder( (object[]) theEvent.Get("a"), new object[] {eventA1, eventA2}); Assert.AreEqual(eventA1, theEvent.Get("a0")); Assert.AreEqual(eventA2, theEvent.Get("a1")); Assert.IsNull(theEvent.Get("a2")); Assert.AreEqual("A1", theEvent.Get("a0Id")); Assert.AreEqual("A2", theEvent.Get("a1Id")); Assert.IsNull(theEvent.Get("a2Id")); Assert.AreEqual(eventB1, theEvent.Get("b")); env.UndeployModuleContaining("s0"); // try wildcard stmt = "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B]"; env.CompileDeploy(stmt).AddListener("s0"); env.SendEventBean(eventA1); env.SendEventBean(eventA2); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(eventB1); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); EPAssertionUtil.AssertEqualsExactOrder( (object[]) theEvent.Get("a"), new object[] {eventA1, eventA2}); Assert.AreSame(eventA1, theEvent.Get("a[0]")); Assert.AreSame(eventA2, theEvent.Get("a[1]")); Assert.IsNull(theEvent.Get("a[2]")); Assert.AreEqual("A1", theEvent.Get("a[0].Id")); Assert.AreEqual("A2", theEvent.Get("a[1].Id")); Assert.IsNull(theEvent.Get("a[2].Id")); Assert.AreSame(eventB1, theEvent.Get("b")); env.UndeployAll(); }
private static SupportBean_A SendA( string id, RegressionEnvironment env) { var a = new SupportBean_A(id); env.SendEventBean(a); return a; }
public void Run(RegressionEnvironment env) { env.CompileDeploy("insert into VarStreamAny select * from SupportBean"); env.CompileDeploy("insert into VarStreamAny select * from SupportBeanVariantStream"); env.CompileDeploy("insert into VarStreamAny select * from SupportBean_A"); env.CompileDeploy( "insert into VarStreamAny select Symbol as TheString, Volume as IntPrimitive, Feed as Id from SupportMarketDataBean"); env.CompileDeploy("@Name('s0') select * from VarStreamAny").AddListener("s0"); Assert.AreEqual(0, env.Statement("s0").EventType.PropertyNames.Length); object eventOne = new SupportBean("E0", -1); env.SendEventBean(eventOne); Assert.AreSame(eventOne, env.Listener("s0").AssertOneGetNewAndReset().Underlying); object eventTwo = new SupportBean_A("E1"); env.SendEventBean(eventTwo); Assert.AreSame(eventTwo, env.Listener("s0").AssertOneGetNewAndReset().Underlying); env.UndeployModuleContaining("s0"); env.CompileDeploy("@Name('s0') select TheString,Id,IntPrimitive from VarStreamAny").AddListener("s0"); var eventType = env.Statement("s0").EventType; Assert.AreEqual(typeof(object), eventType.GetPropertyType("TheString")); Assert.AreEqual(typeof(object), eventType.GetPropertyType("Id")); Assert.AreEqual(typeof(object), eventType.GetPropertyType("IntPrimitive")); var fields = new [] { "TheString","Id","IntPrimitive" }; env.SendEventBean(new SupportBeanVariantStream("E1")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {"E1", null, null}); env.SendEventBean(new SupportBean("E2", 10)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {"E2", null, 10}); env.SendEventBean(new SupportBean_A("E3")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {null, "E3", null}); env.SendEventBean(new SupportMarketDataBean("s1", 100, 1000L, "f1")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {"s1", "f1", 1000L}); env.UndeployAll(); }
private static void TryOrAndNot( RegressionEnvironment env, string pattern) { var expression = "@Name('s0') select * " + "from pattern [" + pattern + "]"; env.CompileDeploy(expression); env.AddListener("s0"); var eventA1 = new SupportBean_A("A1"); env.SendEventBean(eventA1); var theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(eventA1, theEvent.Get("a")); Assert.IsNull(theEvent.Get("b")); var eventB1 = new SupportBean_B("B1"); env.SendEventBean(eventB1); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(eventA1, theEvent.Get("a")); Assert.AreEqual(eventB1, theEvent.Get("b")); env.UndeployAll(); }
public void Run(RegressionEnvironment env) { var expression = "@Name('s0') select * from pattern [every a=SupportBean_A -> b=SupportBean_B -> c=SupportBean_C -> d=SupportBean_D]"; env.CompileDeploy(expression); env.AddListener("s0"); var events = new object[10]; events[0] = new SupportBean_A("A1"); env.SendEventBean(events[0]); events[1] = new SupportBean_A("A2"); env.SendEventBean(events[1]); events[2] = new SupportBean_B("B1"); env.SendEventBean(events[2]); events[3] = new SupportBean_C("C1"); env.SendEventBean(events[3]); Assert.IsFalse(env.Listener("s0").IsInvoked); events[4] = new SupportBean_D("D1"); env.SendEventBean(events[4]); Assert.AreEqual(2, env.Listener("s0").LastNewData.Length); string[] fields = {"a", "b", "c", "d"}; EPAssertionUtil.AssertProps( env.Listener("s0").LastNewData[0], fields, new[] {events[0], events[2], events[3], events[4]}); EPAssertionUtil.AssertProps( env.Listener("s0").LastNewData[1], fields, new[] {events[1], events[2], events[3], events[4]}); env.UndeployAll(); }
public void Run(RegressionEnvironment env) { string stmt; EventBean theEvent; stmt = "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean_C(Id = ('C' || a[0].Id || a[1].Id || b.Id))]"; env.CompileDeploy(stmt).AddListener("s0"); object eventA1 = new SupportBean_A("A1"); env.SendEventBean(eventA1); env.Milestone(0); object eventA2 = new SupportBean_A("A2"); env.SendEventBean(eventA2); env.Milestone(1); object eventB1 = new SupportBean_B("B1"); env.SendEventBean(eventB1); env.Milestone(2); env.SendEventBean(new SupportBean_C("C1")); Assert.IsFalse(env.Listener("s0").IsInvoked); env.Milestone(3); object eventC1 = new SupportBean_C("CA1A2B1"); env.SendEventBean(eventC1); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(eventA1, theEvent.Get("a[0]")); Assert.AreEqual(eventA2, theEvent.Get("a[1]")); Assert.IsNull(theEvent.Get("a[2]")); Assert.AreEqual(eventB1, theEvent.Get("b")); Assert.AreEqual(eventC1, theEvent.Get("c")); env.UndeployAll(); // Test equals-optimization with array event stmt = "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean(TheString = a[1].Id)]"; env.CompileDeploy(stmt).AddListener("s0"); env.SendEventBean(new SupportBean_A("A1")); env.SendEventBean(new SupportBean_A("A2")); env.SendEventBean(new SupportBean_B("B1")); env.SendEventBean(new SupportBean("A3", 20)); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("A2", 10)); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(10, theEvent.Get("c.IntPrimitive")); env.UndeployAll(); // Test in-optimization stmt = "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean(TheString in(a[2].Id))]"; env.CompileDeploy(stmt).AddListener("s0"); env.SendEventBean(new SupportBean_A("A1")); env.SendEventBean(new SupportBean_A("A2")); env.SendEventBean(new SupportBean_A("A3")); env.SendEventBean(new SupportBean_B("B1")); env.SendEventBean(new SupportBean("A2", 20)); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("A3", 5)); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(5, theEvent.Get("c.IntPrimitive")); env.UndeployAll(); // Test not-in-optimization stmt = "@Name('s0') select * from pattern [a=SupportBean_A until b=SupportBean_B -> c=SupportBean(TheString!=a[0].Id and TheString!=a[1].Id and TheString!=a[2].Id)]"; env.CompileDeploy(stmt).AddListener("s0"); env.SendEventBean(new SupportBean_A("A1")); env.SendEventBean(new SupportBean_A("A2")); env.SendEventBean(new SupportBean_A("A3")); env.SendEventBean(new SupportBean_B("B1")); env.SendEventBean(new SupportBean("A2", 20)); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("A1", 20)); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("A6", 5)); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(5, theEvent.Get("c.IntPrimitive")); env.UndeployAll(); // Test range-optimization stmt = "@Name('s0') select * from pattern [" + " a=SupportBean(TheString like 'A%') until " + " b=SupportBean(TheString like 'B%') -> " + " c=SupportBean(IntPrimitive between a[0].IntPrimitive and a[1].IntPrimitive)" + "]"; env.CompileDeploy(stmt).AddListener("s0"); env.SendEventBean(new SupportBean("A1", 5)); env.SendEventBean(new SupportBean("A2", 8)); env.SendEventBean(new SupportBean("B1", -1)); env.SendEventBean(new SupportBean("E1", 20)); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("E2", 3)); Assert.IsFalse(env.Listener("s0").IsInvoked); env.SendEventBean(new SupportBean("E3", 5)); theEvent = env.Listener("s0").AssertOneGetNewAndReset(); Assert.AreEqual(5, theEvent.Get("c.IntPrimitive")); env.UndeployAll(); }
public void Run(RegressionEnvironment env) { var path = new RegressionPath(); env.CompileDeploy("@Name('v0') create variable Object varobject = null", path); env.CompileDeploy( "@Name('v1') create variable " + typeof(SupportBean_A).FullName + " varbean = null", path); env.CompileDeploy("@Name('v2') create variable SupportBean_S0 vartype = null", path); var depIdVarobject = env.DeploymentId("v0"); var depIdVarbean = env.DeploymentId("v1"); var depIdVartype = env.DeploymentId("v2"); var fields = new [] { "varobject","varbean","varbean.Id","vartype","vartype.Id" }; env.CompileDeploy( "@Name('s0') select varobject, varbean, varbean.Id, vartype, vartype.Id from SupportBean", path); env.AddListener("s0"); // test null env.SendEventBean(new SupportBean()); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {null, null, null, null, null}); env.Milestone(0); // test objects var a1objectOne = new SupportBean_A("A1"); var s0objectOne = new SupportBean_S0(1); env.Runtime.VariableService.SetVariableValue(depIdVarobject, "varobject", "abc"); env.Runtime.VariableService.SetVariableValue(depIdVarbean, "varbean", a1objectOne); env.Runtime.VariableService.SetVariableValue(depIdVartype, "vartype", s0objectOne); env.Milestone(1); env.SendEventBean(new SupportBean()); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {"abc", a1objectOne, a1objectOne.Id, s0objectOne, s0objectOne.Id}); // test on-set for Object and EventType var fieldsTop = new [] { "varobject","vartype","varbean" }; env.CompileDeploy( "@Name('set') on SupportBean_S0(P00='X') arrival set varobject=1, vartype=arrival, varbean=null", path); env.AddListener("set"); var s0objectTwo = new SupportBean_S0(2, "X"); env.SendEventBean(s0objectTwo); Assert.AreEqual(1, env.Runtime.VariableService.GetVariableValue(depIdVarobject, "varobject")); Assert.AreEqual(s0objectTwo, env.Runtime.VariableService.GetVariableValue(depIdVartype, "vartype")); Assert.AreEqual( s0objectTwo, env.Runtime .VariableService.GetVariableValue( Collections.SingletonSet(new DeploymentIdNamePair(depIdVartype, "vartype"))) .Get(new DeploymentIdNamePair(depIdVartype, "vartype"))); EPAssertionUtil.AssertProps( env.Listener("set").AssertOneGetNewAndReset(), fieldsTop, new object[] {1, s0objectTwo, null}); EPAssertionUtil.AssertProps( env.GetEnumerator("set").Advance(), fieldsTop, new object[] {1, s0objectTwo, null}); // set via API to null IDictionary<DeploymentIdNamePair, object> newValues = new Dictionary<DeploymentIdNamePair, object>(); newValues.Put(new DeploymentIdNamePair(depIdVarobject, "varobject"), null); newValues.Put(new DeploymentIdNamePair(depIdVartype, "vartype"), null); newValues.Put(new DeploymentIdNamePair(depIdVarbean, "varbean"), null); env.Runtime.VariableService.SetVariableValue(newValues); env.SendEventBean(new SupportBean()); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {null, null, null, null, null}); // set via API to values newValues.Put(new DeploymentIdNamePair(depIdVarobject, "varobject"), 10L); newValues.Put(new DeploymentIdNamePair(depIdVartype, "vartype"), s0objectTwo); newValues.Put(new DeploymentIdNamePair(depIdVarbean, "varbean"), a1objectOne); env.Runtime.VariableService.SetVariableValue(newValues); env.SendEventBean(new SupportBean()); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] {10L, a1objectOne, a1objectOne.Id, s0objectTwo, s0objectTwo.Id}); // test on-set for Bean class env.CompileDeploy( "@Name('set-two') on SupportBean_A(Id='Y') arrival set varobject=null, vartype=null, varbean=arrival", path); env.AddListener("set-two"); var a1objectTwo = new SupportBean_A("Y"); env.SendEventBean(new SupportBean_A("Y")); Assert.AreEqual(null, env.Runtime.VariableService.GetVariableValue(depIdVarobject, "varobject")); Assert.AreEqual(null, env.Runtime.VariableService.GetVariableValue(depIdVartype, "vartype")); Assert.AreEqual( a1objectTwo, env.Runtime .VariableService.GetVariableValue( Collections.SingletonSet(new DeploymentIdNamePair(depIdVarbean, "varbean"))) .Get(new DeploymentIdNamePair(depIdVarbean, "varbean"))); EPAssertionUtil.AssertProps( env.Listener("set-two").AssertOneGetNewAndReset(), fieldsTop, new object[] {null, null, a1objectTwo}); EPAssertionUtil.AssertProps( env.GetEnumerator("set-two").Advance(), fieldsTop, new object[] {null, null, a1objectTwo}); env.UndeployAll(); }