Deveel.Data.LoopTests.SimpleCursorForLoop C# (CSharp) Method

SimpleCursorForLoop() private method

private SimpleCursorForLoop ( ) : void
return void
        public void SimpleCursorForLoop()
        {
            var query = (SqlQueryExpression) SqlExpression.Parse("SELECT * FROM table1");

            var block = new PlSqlBlockStatement();
            block.Declarations.Add(new DeclareCursorStatement("c1", query));

            var loop = new CursorForLoopStatement("i", "c1");
            loop.Statements.Add(new DeclareVariableStatement("a", PrimitiveTypes.String()));
            loop.Statements.Add(new AssignVariableStatement(SqlExpression.VariableReference("a"),
                SqlExpression.FunctionCall("cast",
                    new SqlExpression[] { SqlExpression.VariableReference("i"), SqlExpression.Constant("varchar") })));
            loop.Statements.Add(
                new ConditionStatement(SqlExpression.Equal(SqlExpression.VariableReference("i"), SqlExpression.Constant(50)),
                    new SqlStatement[] { new ReturnStatement(SqlExpression.VariableReference("a")) }));
            block.Statements.Add(new OpenStatement("c1"));
            block.Statements.Add(loop);
            var result = AdminQuery.ExecuteStatement(block);

            Assert.IsNotNull(result);
            Assert.AreEqual(StatementResultType.Result, result.Type);

            var value = result.Result.GetValue(0, 0);
            Assert.IsNotNull(value);
            Assert.IsFalse(Field.IsNullField(value));
        }