mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
add test
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* (created at 2011-7-18)
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.cobar;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.parser.Token;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:danping.yudp@alibaba-inc.com">YU Danping</a>
|
||||
*/
|
||||
|
||||
public class DMLCallParserTest extends TestCase {
|
||||
public void testCall_0() throws Exception {
|
||||
String sql = "call p(?,?)";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CALL p(?, ?)", output);
|
||||
}
|
||||
|
||||
public void testCall_1() throws Exception {
|
||||
String sql = "call p(@var1,'@var2',var3)";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CALL p(@var1, '@var2', var3)", output);
|
||||
}
|
||||
|
||||
public void testCall_2() throws Exception {
|
||||
String sql = "call p()";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("CALL p()", output);
|
||||
}
|
||||
|
||||
// public void testCall() throws SQLSyntaxErrorException {
|
||||
// String sql = "call p(?,?) ";
|
||||
// SQLLexer lexer = new SQLLexer(sql);
|
||||
// DMLCallParser parser = new DMLCallParser(lexer, new SQLExprParser(lexer));
|
||||
// DMLCallStatement calls = parser.call();
|
||||
// parser.match(Token.EOF);
|
||||
// String output = output2MySQL(calls, sql);
|
||||
// Assert.assertEquals("CALL p(?, ?)", output);
|
||||
//
|
||||
// sql = "call p(@var1,'@var2',var3)";
|
||||
// lexer = new SQLLexer(sql);
|
||||
// parser = new DMLCallParser(lexer, new SQLExprParser(lexer));
|
||||
// calls = parser.call();
|
||||
// parser.match(Token.EOF);
|
||||
// output = output2MySQL(calls, sql);
|
||||
// Assert.assertEquals("CALL p(@var1, '@var2', var3)", output);
|
||||
//
|
||||
// sql = "call p()";
|
||||
// lexer = new SQLLexer(sql);
|
||||
// parser = new DMLCallParser(lexer, new SQLExprParser(lexer));
|
||||
// calls = parser.call();
|
||||
// parser.match(Token.EOF);
|
||||
// output = output2MySQL(calls, sql);
|
||||
// Assert.assertEquals("CALL p()", output);
|
||||
//
|
||||
// sql = "call p(?)";
|
||||
// lexer = new SQLLexer(sql);
|
||||
// parser = new DMLCallParser(lexer, new SQLExprParser(lexer));
|
||||
// calls = parser.call();
|
||||
// parser.match(Token.EOF);
|
||||
// output = output2MySQL(calls, sql);
|
||||
// Assert.assertEquals("CALL p(?)", output);
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.alibaba.druid.bvt.sql.cobar;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.parser.Token;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class DMLDeleteParserTest extends TestCase {
|
||||
|
||||
public void testDelete_0() throws Exception {
|
||||
String sql = "deLetE LOW_PRIORITY from id1.id , id using t1 a where col1 =? ";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("DELETE LOW_PRIORITY FROM id1.id, id\n" + //
|
||||
"USING t1 a" + //
|
||||
"\nWHERE col1 = ?", output);
|
||||
}
|
||||
|
||||
public void testDelete_1() throws Exception {
|
||||
String sql = "deLetE from id1.id using t1";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("DELETE FROM id1.id" + //
|
||||
"\nUSING t1", output);
|
||||
}
|
||||
|
||||
public void testDelete_2() throws Exception {
|
||||
String sql = "delete from offer.*,wp_image.* using offer a,wp_image b where a.member_id=b.member_id and a.member_id='abc' ";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("DELETE FROM offer.*, wp_image.*\n" + //
|
||||
"USING offer a, wp_image b\n" + //
|
||||
"WHERE a.member_id = b.member_id\n" + //
|
||||
"AND a.member_id = 'abc'", output);
|
||||
}
|
||||
|
||||
public void testDelete_3() throws Exception {
|
||||
String sql = "deLetE from id1.id where col1='adf' limit 1,?";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("DELETE FROM id1.id\n" + //
|
||||
"WHERE col1 = 'adf'\n" + //
|
||||
"LIMIT 1, ?", output);
|
||||
}
|
||||
|
||||
public void testDelete_4() throws Exception {
|
||||
String sql = "deLetE from id where col1='adf' ordEr by d liMit ? offset 2";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("DELETE FROM id\n" + //
|
||||
"WHERE col1 = 'adf'\n" + //
|
||||
"ORDER BY d\n" + //
|
||||
"LIMIT 2, ?", output);
|
||||
}
|
||||
|
||||
public void testDelete_5() throws Exception {
|
||||
String sql = "deLetE id.* from t1,t2 where col1='adf' and col2=1";
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLStatement stmt = parser.parseStatementList().get(0);
|
||||
parser.match(Token.EOF);
|
||||
String output = SQLUtils.toMySqlString(stmt);
|
||||
Assert.assertEquals("DELETE id.*\n" + //
|
||||
"FROM t1, t2\n" + //
|
||||
"WHERE col1 = 'adf'\n" + //
|
||||
"AND col2 = 1", output);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user