//@Hook(type=HookType.SQLCOL, hook="this is a sample and not used") private void RunAssertionOutputColumnConversion(EPServiceProvider epService) { SupportSQLColumnTypeConversion.Reset(); epService.EPAdministrator.Configuration.AddVariable("myvariableOCC", typeof(int), 10); var fields = new string[] { "myint" }; string stmtText = "@Hook(Type=HookType.SQLCOL, Hook='" + typeof(SupportSQLColumnTypeConversion).FullName + "')" + "select * from sql:MyDB ['select myint from mytesttable where myint = ${myvariableOCC}']"; EPStatement stmt = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; Assert.AreEqual(typeof(bool?), stmt.EventType.GetPropertyType("myint")); EPAssertionUtil.AssertPropsPerRowAnyOrder(stmt.GetEnumerator(), fields, new object[][] { new object[] { false } }); // assert contexts SQLColumnTypeContext type = SupportSQLColumnTypeConversion.TypeContexts[0]; Assert.AreEqual("System.Int32", type.ColumnSqlType); Assert.AreEqual("MyDB", type.Db); Assert.AreEqual("select myint from mytesttable where myint = ${myvariableOCC}", type.Sql); Assert.AreEqual("myint", type.ColumnName); Assert.AreEqual(1, type.ColumnNumber); Assert.AreEqual(typeof(int?), type.ColumnClassType); SQLColumnValueContext val = SupportSQLColumnTypeConversion.ValueContexts[0]; Assert.AreEqual(10, val.ColumnValue); Assert.AreEqual("myint", val.ColumnName); Assert.AreEqual(1, val.ColumnNumber); epService.EPRuntime.SetVariableValue("myvariableOCC", 60); // greater 50 turns true EPAssertionUtil.AssertPropsPerRowAnyOrder(stmt.GetEnumerator(), fields, new object[][] { new object[] { true } }); stmt.Dispose(); }
public Type GetColumnType(SQLColumnTypeContext sqlColumnTypeContext) { typeContexts.Add(sqlColumnTypeContext); return(typeof(bool?)); }