public void TestNamedWin() { _epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); _epService.EPAdministrator.Configuration.AddEventType("SupportBeanVariantStream", typeof(SupportBeanVariantStream)); ConfigurationVariantStream variant = new ConfigurationVariantStream(); variant.AddEventTypeName("SupportBeanVariantStream"); variant.AddEventTypeName("SupportBean"); _epService.EPAdministrator.Configuration.AddVariantStream("MyVariantStream", variant); // test named window EPStatement stmt = _epService.EPAdministrator.CreateEPL("create window MyVariantWindow.std:unique(TheString) as select * from MyVariantStream"); stmt.Events += _listenerOne.Update; _epService.EPAdministrator.CreateEPL("insert into MyVariantWindow select * from MyVariantStream"); _epService.EPAdministrator.CreateEPL("insert into MyVariantStream select * from SupportBeanVariantStream"); _epService.EPAdministrator.CreateEPL("insert into MyVariantStream select * from SupportBean"); Object eventOne = new SupportBean("E1", -1); _epService.EPRuntime.SendEvent(eventOne); Assert.AreSame(eventOne, _listenerOne.AssertOneGetNewAndReset().Underlying); Object eventTwo = new SupportBeanVariantStream("E2"); _epService.EPRuntime.SendEvent(eventTwo); Assert.AreSame(eventTwo, _listenerOne.AssertOneGetNewAndReset().Underlying); Object eventThree = new SupportBean("E2", -1); _epService.EPRuntime.SendEvent(eventThree); Assert.AreSame(eventThree, _listenerOne.LastNewData[0].Underlying); Assert.AreSame(eventTwo, _listenerOne.LastOldData[0].Underlying); _listenerOne.Reset(); Object eventFour = new SupportBeanVariantStream("E1"); _epService.EPRuntime.SendEvent(eventFour); Assert.AreSame(eventFour, _listenerOne.LastNewData[0].Underlying); Assert.AreSame(eventOne, _listenerOne.LastOldData[0].Underlying); _listenerOne.Reset(); }
private void RunAssertionNamedWin(EPServiceProvider epService) { var variant = new ConfigurationVariantStream(); variant.AddEventTypeName("SupportBeanVariantStream"); variant.AddEventTypeName("SupportBean"); epService.EPAdministrator.Configuration.AddVariantStream("MyVariantStreamThree", variant); // test named window EPStatement stmt = epService.EPAdministrator.CreateEPL("create window MyVariantWindow#unique(TheString) as select * from MyVariantStreamThree"); var listenerOne = new SupportUpdateListener(); stmt.Events += listenerOne.Update; epService.EPAdministrator.CreateEPL("insert into MyVariantWindow select * from MyVariantStreamThree"); epService.EPAdministrator.CreateEPL("insert into MyVariantStreamThree select * from SupportBeanVariantStream"); epService.EPAdministrator.CreateEPL("insert into MyVariantStreamThree select * from SupportBean"); var eventOne = new SupportBean("E1", -1); epService.EPRuntime.SendEvent(eventOne); Assert.AreSame(eventOne, listenerOne.AssertOneGetNewAndReset().Underlying); var eventTwo = new SupportBeanVariantStream("E2"); epService.EPRuntime.SendEvent(eventTwo); Assert.AreSame(eventTwo, listenerOne.AssertOneGetNewAndReset().Underlying); var eventThree = new SupportBean("E2", -1); epService.EPRuntime.SendEvent(eventThree); Assert.AreSame(eventThree, listenerOne.LastNewData[0].Underlying); Assert.AreSame(eventTwo, listenerOne.LastOldData[0].Underlying); listenerOne.Reset(); var eventFour = new SupportBeanVariantStream("E1"); epService.EPRuntime.SendEvent(eventFour); Assert.AreSame(eventFour, listenerOne.LastNewData[0].Underlying); Assert.AreSame(eventOne, listenerOne.LastOldData[0].Underlying); listenerOne.Reset(); epService.EPAdministrator.DestroyAllStatements(); }
public void Run(RegressionEnvironment env) { // test named window var path = new RegressionPath(); env.CompileDeploy( "@Name('window') create window MyVariantWindow#unique(TheString) as select * from MyVariantTwoTypedSB", path); env.AddListener("window"); env.CompileDeploy("insert into MyVariantWindow select * from MyVariantTwoTypedSB", path); env.CompileDeploy("insert into MyVariantTwoTypedSB select * from SupportBeanVariantStream", path); env.CompileDeploy("insert into MyVariantTwoTypedSB select * from SupportBean", path); object eventOne = new SupportBean("E1", -1); env.SendEventBean(eventOne); Assert.AreSame(eventOne, env.Listener("window").AssertOneGetNewAndReset().Underlying); env.Milestone(0); object eventTwo = new SupportBeanVariantStream("E2"); env.SendEventBean(eventTwo); Assert.AreSame(eventTwo, env.Listener("window").AssertOneGetNewAndReset().Underlying); env.Milestone(1); object eventThree = new SupportBean("E2", -1); env.SendEventBean(eventThree); Assert.AreEqual(eventThree, env.Listener("window").LastNewData[0].Underlying); Assert.AreEqual(eventTwo, env.Listener("window").LastOldData[0].Underlying); env.Listener("window").Reset(); env.Milestone(2); object eventFour = new SupportBeanVariantStream("E1"); env.SendEventBean(eventFour); Assert.AreEqual(eventFour, env.Listener("window").LastNewData[0].Underlying); Assert.AreEqual(eventOne, env.Listener("window").LastOldData[0].Underlying); env.Listener("window").Reset(); env.UndeployAll(); }
public void TestCoercionBoxedTypeMatch() { _epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); _epService.EPAdministrator.Configuration.AddEventType("SupportBeanVariantStream", typeof(SupportBeanVariantStream)); ConfigurationVariantStream variant = new ConfigurationVariantStream(); variant.AddEventTypeName("SupportBean"); variant.AddEventTypeName("SupportBeanVariantStream"); _epService.EPAdministrator.Configuration.AddVariantStream("MyVariantStream", variant); EPStatement stmt = _epService.EPAdministrator.CreateEPL("select * from MyVariantStream"); stmt.Events += _listenerOne.Update; EventType typeSelectAll = stmt.EventType; AssertEventTypeDefault(typeSelectAll); Assert.AreEqual(typeof(Object), stmt.EventType.UnderlyingType); _epService.EPAdministrator.CreateEPL("insert into MyVariantStream select * from SupportBean"); _epService.EPAdministrator.CreateEPL("insert into MyVariantStream select * from SupportBeanVariantStream"); // try wildcard Object eventOne = new SupportBean("E0", -1); _epService.EPRuntime.SendEvent(eventOne); Assert.AreSame(eventOne, _listenerOne.AssertOneGetNewAndReset().Underlying); Object eventTwo = new SupportBeanVariantStream("E1"); _epService.EPRuntime.SendEvent(eventTwo); Assert.AreSame(eventTwo, _listenerOne.AssertOneGetNewAndReset().Underlying); stmt.Dispose(); String fields = "TheString,BoolBoxed,IntPrimitive,LongPrimitive,DoublePrimitive,EnumValue"; stmt = _epService.EPAdministrator.CreateEPL("select " + fields + " from MyVariantStream"); stmt.Events += _listenerOne.Update; AssertEventTypeDefault(stmt.EventType); // coerces to the higher resolution type, accepts boxed versus not boxed _epService.EPRuntime.SendEvent(new SupportBeanVariantStream("s1", true, 1, 20, 30, SupportEnum.ENUM_VALUE_1)); EPAssertionUtil.AssertProps(_listenerOne.AssertOneGetNewAndReset(), fields.Split(','), new Object[] { "s1", true, 1, 20L, 30d, SupportEnum.ENUM_VALUE_1 }); SupportBean bean = new SupportBean("s2", 99); bean.LongPrimitive = 33; bean.DoublePrimitive = 50; bean.EnumValue = SupportEnum.ENUM_VALUE_3; _epService.EPRuntime.SendEvent(bean); EPAssertionUtil.AssertProps(_listenerOne.AssertOneGetNewAndReset(), fields.Split(','), new Object[] { "s2", null, 99, 33L, 50d, SupportEnum.ENUM_VALUE_3 }); // make sure a property is not known since the property is not found on SupportBeanVariantStream try { _epService.EPAdministrator.CreateEPL("select CharBoxed from MyVariantStream"); Assert.Fail(); } catch (EPStatementException ex) { Assert.AreEqual("Error starting statement: Failed to validate select-clause expression 'CharBoxed': Property named 'CharBoxed' is not valid in any stream [select CharBoxed from MyVariantStream]", ex.Message); } // try dynamic property: should exists but not show up as a declared property stmt.Dispose(); fields = "v1,v2,v3"; stmt = _epService.EPAdministrator.CreateEPL("select LongBoxed? as v1,CharBoxed? as v2,DoubleBoxed? as v3 from MyVariantStream"); stmt.Events += _listenerOne.Update; AssertEventTypeDefault(typeSelectAll); // asserts prior "select *" event type bean = new SupportBean(); bean.LongBoxed = 33L; bean.CharBoxed = 'a'; bean.DoubleBoxed = Double.NaN; _epService.EPRuntime.SendEvent(bean); EPAssertionUtil.AssertProps(_listenerOne.AssertOneGetNewAndReset(), fields.Split(','), new Object[] { 33L, 'a', Double.NaN }); _epService.EPRuntime.SendEvent(new SupportBeanVariantStream("s2")); EPAssertionUtil.AssertProps(_listenerOne.AssertOneGetNewAndReset(), fields.Split(','), new Object[] { null, null, null }); }
public void Run(RegressionEnvironment env) { string fields; SupportBean bean; env.CompileDeploy("@Name('s0') select * from MyVariantTwoTypedSB").AddListener("s0"); var typeSelectAll = env.Statement("s0").EventType; AssertEventTypeDefault(typeSelectAll); Assert.AreEqual(typeof(object), env.Statement("s0").EventType.UnderlyingType); env.CompileDeploy("insert into MyVariantTwoTypedSB select * from SupportBean"); env.CompileDeploy("insert into MyVariantTwoTypedSB select * from SupportBeanVariantStream"); // try wildcard object eventOne = new SupportBean("E0", -1); env.SendEventBean(eventOne); Assert.AreSame(eventOne, env.Listener("s0").AssertOneGetNewAndReset().Underlying); object eventTwo = new SupportBeanVariantStream("E1"); env.SendEventBean(eventTwo); Assert.AreSame(eventTwo, env.Listener("s0").AssertOneGetNewAndReset().Underlying); env.UndeployModuleContaining("s0"); fields = "TheString,BoolBoxed,IntPrimitive,LongPrimitive,DoublePrimitive,EnumValue"; env.CompileDeploy("@Name('s0') select " + fields + " from MyVariantTwoTypedSB").AddListener("s0"); AssertEventTypeDefault(env.Statement("s0").EventType); // coerces to the higher resolution type, accepts boxed versus not boxed env.SendEventBean(new SupportBeanVariantStream("s1", true, 1, 20, 30, SupportEnum.ENUM_VALUE_1)); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields.SplitCsv(), new object[] {"s1", true, 1, 20L, 30d, SupportEnum.ENUM_VALUE_1}); bean = new SupportBean("s2", 99); bean.LongPrimitive = 33; bean.DoublePrimitive = 50; bean.EnumValue = SupportEnum.ENUM_VALUE_3; env.SendEventBean(bean); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields.SplitCsv(), new object[] {"s2", null, 99, 33L, 50d, SupportEnum.ENUM_VALUE_3}); env.UndeployModuleContaining("s0"); // make sure a property is not known since the property is not found on SupportBeanVariantStream TryInvalidCompile( env, "select CharBoxed from MyVariantTwoTypedSB", "Failed to validate select-clause expression 'CharBoxed': Property named 'CharBoxed' is not valid in any stream"); // try dynamic property: should exists but not show up as a declared property fields = "v1,v2,v3"; env.CompileDeploy( "@Name('s0') select LongBoxed? as v1,CharBoxed? as v2,DoubleBoxed? as v3 from MyVariantTwoTypedSB") .AddListener("s0"); bean = new SupportBean(); bean.LongBoxed = 33L; bean.CharBoxed = 'a'; bean.DoubleBoxed = double.NaN; env.SendEventBean(bean); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields.SplitCsv(), new object[] {33L, 'a', double.NaN}); env.SendEventBean(new SupportBeanVariantStream("s2")); EPAssertionUtil.AssertProps( env.Listener("s0").AssertOneGetNewAndReset(), fields.SplitCsv(), new object[] {null, null, null}); env.UndeployAll(); }