/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.query.sql.v85;
import org.junit.Test;
import org.teiid.designer.runtime.version.spi.ITeiidServerVersion;
import org.teiid.designer.runtime.version.spi.TeiidServerVersion.Version;
import org.teiid.query.parser.TeiidNodeFactory.ASTNodes;
import org.teiid.query.sql.lang.Delete;
import org.teiid.query.sql.proc.AssignmentStatement;
import org.teiid.query.sql.proc.Block;
import org.teiid.query.sql.proc.CommandStatement;
import org.teiid.query.sql.proc.CreateProcedureCommand;
import org.teiid.query.sql.proc.RaiseStatement;
import org.teiid.query.sql.proc.Statement;
import org.teiid.query.sql.v8.Test8SQLStringVisitor;
/**
*
*/
@SuppressWarnings( {"nls", "javadoc"} )
public class Test85SQLStringVisitor extends Test8SQLStringVisitor {
protected Test85SQLStringVisitor(Version teiidVersion) {
super(teiidVersion);
}
public Test85SQLStringVisitor() {
this(Version.TEIID_8_5);
}
@Override
@Test
public void testCreateUpdateProcedure1() {
Delete d1 = getFactory().newNode(ASTNodes.DELETE);
d1.setGroup(getFactory().newGroupSymbol("g"));
CommandStatement cmdStmt = getFactory().newCommandStatement(d1);
AssignmentStatement assigStmt = getFactory().newAssignmentStatement(getFactory().newElementSymbol("a"), getFactory().newConstant(new Integer(1)));
RaiseStatement errStmt = getFactory().newRaiseStatement(getFactory().newConstant("My Error"));
Block b = getFactory().newBlock();
b.addStatement(cmdStmt);
b.addStatement(assigStmt);
b.addStatement(errStmt);
CreateProcedureCommand cup = getFactory().newCreateProcedureCommand(b);
helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND");
}
@Override
@Test
public void testCreateUpdateProcedure2() {
Delete d1 = getFactory().newNode(ASTNodes.DELETE);
d1.setGroup(getFactory().newGroupSymbol("g"));
CommandStatement cmdStmt = getFactory().newCommandStatement(d1);
AssignmentStatement assigStmt = getFactory().newAssignmentStatement(getFactory().newElementSymbol("a"), getFactory().newConstant(new Integer(1)));
RaiseStatement errStmt = getFactory().newRaiseStatement(getFactory().newConstant("My Error"));
Block b = getFactory().newBlock();
b.addStatement(cmdStmt);
b.addStatement(assigStmt);
b.addStatement(errStmt);
CreateProcedureCommand cup = getFactory().newCreateProcedureCommand(b);
helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND");
}
@Override
@Test
public void testCreateUpdateProcedure3() {
Delete d1 = getFactory().newNode(ASTNodes.DELETE);
d1.setGroup(getFactory().newGroupSymbol("g"));
CommandStatement cmdStmt = getFactory().newCommandStatement(d1);
AssignmentStatement assigStmt = getFactory().newAssignmentStatement(getFactory().newElementSymbol("a"), getFactory().newConstant(new Integer(1)));
Statement errStmt = getFactory().newRaiseStatement(getFactory().newConstant("My Error"));
Block b = getFactory().newBlock();
b.addStatement(cmdStmt);
b.addStatement(assigStmt);
b.addStatement(errStmt);
CreateProcedureCommand cup = getFactory().newCreateProcedureCommand(b);
helpTest(cup, "BEGIN\nDELETE FROM g;\na = 1;\nRAISE 'My Error';\nEND");
}
@Override
@Test
public void testReturnStatement() throws Exception {
helpTest(parser.parseProcedure("begin if (true) return 1; return; end", false),
"BEGIN\nIF(TRUE)\nBEGIN\nRETURN 1;\nEND\nRETURN;\nEND");
}
}