package com.alibaba.druid.bvt.sql.eval; import java.math.BigDecimal; import junit.framework.TestCase; import org.junit.Assert; import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils; import com.alibaba.druid.util.JdbcConstants; public class EvalMethodAbsTest extends TestCase { public void test_abs_int() throws Exception { Assert.assertEquals(12, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(-12)")); Assert.assertEquals(12, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(12)")); } public void test_abs_long() throws Exception { Assert.assertEquals(12L, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(?)", 12L)); Assert.assertEquals(12L, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(?)", -12L)); } public void test_abs_decimal() throws Exception { Assert.assertEquals(new BigDecimal("12"), SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(?)", new BigDecimal("12"))); Assert.assertEquals(new BigDecimal("12"), SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(?)", new BigDecimal("-12"))); } public void test_abs_error() throws Exception { Exception error = null; try { SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs()", 12L); } catch (Exception e) { error = e; } Assert.assertNotNull(error); } public void test_abs_error_1() throws Exception { Exception error = null; try { SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "abs(a)"); } catch (Exception e) { error = e; } Assert.assertNotNull(error); } }