package net.paoding.rose.jade.exql; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; import junit.framework.Assert; import junit.framework.TestCase; import net.paoding.rose.jade.statement.expression.ExprResolver; import net.paoding.rose.jade.statement.expression.impl.ExprResolverImpl; public class ExprResolverTests extends TestCase { // 进行简单测试 public void testPrimitives() throws Exception { float f1 = 25.1f; double d2 = 3.1415; long l3 = 65536; int i4 = 125; Map<String, Object> mapVars = new HashMap<String, Object>(); mapVars.put("f1", f1); mapVars.put("d2", d2); Map<String, Object> mapConsts = new HashMap<String, Object>(); mapConsts.put("l3", l3); mapConsts.put("i4", i4); ExprResolver exprResolver = new ExprResolverImpl(mapVars, mapConsts); Double value1 = (Double) exprResolver.executeExpr(":f1 - (:d2 + $l3) - $i4 - 1"); System.out.println(value1); Assert.assertEquals(f1 - (d2 + l3) - i4 - 1, value1, 0.000001); Double value2 = (Double) exprResolver.executeExpr("(:f1 - :d2) + 1.5 + ($l3 - $i4)"); System.out.println(value2); Assert.assertEquals((f1 - d2) + 1.5 + (l3 - i4), value2, 0.000001); } // 进行简单测试 @SuppressWarnings("deprecation") public void testBeans() throws Exception { Locale bean1 = Locale.getDefault(); Date bean2 = new Date(); Map<String, Object> mapVars = new HashMap<String, Object>(); mapVars.put("bean1", bean1); Map<String, Object> mapConsts = new HashMap<String, Object>(); mapConsts.put("bean2", bean2); ExprResolver exprResolver = new ExprResolverImpl(mapVars, mapConsts); Object value = exprResolver.executeExpr(":bean1.displayCountry + ', ' + " + ":bean1.displayLanguage + ', ' + :bean1.displayName + ': '" + " + ($bean2.year + 1900) + '-' + ($bean2.month + 1) + '-' + $bean2.date"); System.out.println(value); Assert.assertEquals(bean1.getDisplayCountry() + ", " + // NL bean1.getDisplayLanguage() + ", " + bean1.getDisplayName() + ": " // NL + (bean2.getYear() + 1900) + '-' + (bean2.getMonth() + 1) // NL + '-' + bean2.getDate(), value); } }