mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improve SQLEvalVisitor
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
package com.alibaba.druid.bvt.sql.eval;
|
||||
|
||||
import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
||||
public class EvalCaseThen extends TestCase {
|
||||
public void test_eval_then() throws Exception {
|
||||
Assert.assertEquals(111, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "case ? when 0 then 111 else 222 end", 0));
|
||||
Assert.assertEquals(222, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "case ? when 0 then 111 else 222 end", 1));
|
||||
}
|
||||
}
|
||||
@@ -15,21 +15,53 @@
|
||||
*/
|
||||
package com.alibaba.druid.bvt.sql.eval;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
|
||||
public class EvalTest extends TestCase {
|
||||
|
||||
public void testEval() throws Exception {
|
||||
Assert.assertEquals("A", SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "?", "A"));
|
||||
Assert.assertEquals(123, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "?", 123));
|
||||
Assert.assertEquals("A", SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "?", "A"));
|
||||
Assert.assertEquals(123, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "?", 123));
|
||||
}
|
||||
|
||||
public void testEval_1() throws Exception {
|
||||
Assert.assertEquals("AB", SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "? + ?", "A", "B"));
|
||||
Assert.assertEquals(234, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "? + ?", 123, 111));
|
||||
Assert.assertEquals("AB", SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? + ?", "A", "B"));
|
||||
Assert.assertEquals(234, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? + ?", 123, 111));
|
||||
}
|
||||
|
||||
public void testEval_2() throws Exception {
|
||||
Assert.assertEquals(110, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? * ?", 10, 11));
|
||||
}
|
||||
|
||||
public void testEval_3() throws Exception {
|
||||
Assert.assertEquals(new BigDecimal("110"), SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? * ?",
|
||||
new BigDecimal("10"),
|
||||
new BigDecimal("11")));
|
||||
}
|
||||
|
||||
public void testEval_4() throws Exception {
|
||||
Assert.assertEquals(new BigDecimal("110"),
|
||||
SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? * 11", new BigDecimal("10")));
|
||||
}
|
||||
|
||||
public void testEval_5() throws Exception {
|
||||
Assert.assertEquals(new BigDecimal("110.0"),
|
||||
SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? * 11.0", new BigDecimal("10")));
|
||||
}
|
||||
|
||||
public void testEval_6() throws Exception {
|
||||
Assert.assertEquals(new BigDecimal("110.0"),
|
||||
SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? * 11", new BigDecimal("10.0")));
|
||||
}
|
||||
|
||||
public void testEval_7() throws Exception {
|
||||
Assert.assertEquals(new BigDecimal("110.0"),
|
||||
SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "? * 11.0", "10"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user