📄 testbeanutil.java
字号:
package jodd.bean;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.HashMap;
import jodd.bean.modifiers.TrimStrings;
import junit.framework.TestCase;
public class TestBeanUtil extends TestCase {
public void testSetPropertyNumbers() {
FooBean fb = new FooBean();
// Integer
boolean valid;
String propName = "fooInteger";
valid = BeanUtil.setProperty(fb, propName, new Integer(1));
assertTrue(valid);
assertEquals(1, fb.getFooInteger().intValue());
valid = BeanUtil.setProperty(fb, propName, null);
assertTrue(valid);
assertNull(fb.getFooInteger());
valid = BeanUtil.setProperty(fb, propName, "2"); // valid string
assertTrue(valid);
assertEquals(2, fb.getFooInteger().intValue());
valid = BeanUtil.setProperty(fb, propName, "x"); // invalid string - value stays the same
assertFalse(valid);
assertEquals(2, fb.getFooInteger().intValue());
// int
propName = "fooint";
valid = BeanUtil.setProperty(fb, propName, new Integer(1));
assertTrue(valid);
assertEquals(1, fb.getFooint());
valid = BeanUtil.setProperty(fb, propName, null); // null is not an int
assertFalse(valid);
assertEquals(1, fb.getFooint());
valid = BeanUtil.setProperty(fb, propName, "2"); // valid string
assertTrue(valid);
assertEquals(2, fb.getFooint());
valid = BeanUtil.setProperty(fb, propName, "w"); // invalid string
assertFalse(valid);
assertEquals(2, fb.getFooint());
// Long
propName = "fooLong";
valid = BeanUtil.setProperty(fb, propName, new Long(1));
assertTrue(valid);
assertEquals(1L, fb.getFooLong().longValue());
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3L, fb.getFooLong().longValue());
valid = BeanUtil.setProperty(fb, propName, null);
assertTrue(valid);
assertNull(fb.getFooLong());
valid = BeanUtil.setProperty(fb, propName, "2"); // valid string
assertTrue(valid);
assertEquals(2L, fb.getFooLong().longValue());
valid = BeanUtil.setProperty(fb, propName, "x"); // invalid string - value stays the same
assertFalse(valid);
assertEquals(2L, fb.getFooLong().longValue());
// long
propName = "foolong";
valid = BeanUtil.setProperty(fb, propName, new Long(1));
assertTrue(valid);
assertEquals(1L, fb.getFoolong());
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3L, fb.getFoolong());
valid = BeanUtil.setProperty(fb, propName, null); // null is not a long
assertFalse(valid);
assertEquals(3L, fb.getFoolong());
valid = BeanUtil.setProperty(fb, propName, "2"); // valid string
assertTrue(valid);
assertEquals(2L, fb.getFoolong());
valid = BeanUtil.setProperty(fb, propName, "w"); // invalid string
assertFalse(valid);
assertEquals(2L, fb.getFoolong());
// Byte
propName = "fooByte";
valid = BeanUtil.setProperty(fb, propName, new Byte((byte) 1));
assertTrue(valid);
assertEquals(1, fb.getFooByte().byteValue());
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3, fb.getFooByte().byteValue());
valid = BeanUtil.setProperty(fb, propName, new Integer(257));
assertTrue(valid);
assertEquals(1, fb.getFooByte().byteValue()); // lower byte of 257
valid = BeanUtil.setProperty(fb, propName, null);
assertTrue(valid);
assertNull(fb.getFooByte());
valid = BeanUtil.setProperty(fb, propName, "2"); // valid string
assertTrue(valid);
assertEquals(2, fb.getFooByte().byteValue());
valid = BeanUtil.setProperty(fb, propName, "x"); // invalid string - value stays the same
assertFalse(valid);
assertEquals(2, fb.getFooByte().byteValue());
// byte
propName = "foobyte";
valid = BeanUtil.setProperty(fb, propName, new Byte((byte) 1));
assertTrue(valid);
assertEquals(1, fb.getFoobyte());
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3, fb.getFoobyte());
valid = BeanUtil.setProperty(fb, propName, new Integer(257));
assertTrue(valid);
assertEquals(1, fb.getFoobyte());
valid = BeanUtil.setProperty(fb, propName, null); // null is not a byte
assertFalse(valid);
assertEquals(1, fb.getFoobyte());
valid = BeanUtil.setProperty(fb, propName, "2"); // valid string
assertTrue(valid);
assertEquals(2, fb.getFoobyte());
valid = BeanUtil.setProperty(fb, propName, "x"); // invalid string - value stays the same
assertFalse(valid);
assertEquals(2, fb.getFoobyte());
// Boolean
propName = "fooBoolean";
valid = BeanUtil.setProperty(fb, propName, Boolean.TRUE);
assertTrue(valid);
assertEquals(true, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, new Boolean(false));
assertTrue(valid);
assertEquals(false, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, null);
assertTrue(valid);
assertNull(fb.getFooBoolean());
valid = BeanUtil.setProperty(fb, propName, "yes");
assertTrue(valid);
assertEquals(true, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "y");
assertTrue(valid);
assertEquals(true, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "true");
assertTrue(valid);
assertEquals(true, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "on");
assertTrue(valid);
assertEquals(true, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "1");
assertTrue(valid);
assertEquals(true, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "no");
assertTrue(valid);
assertEquals(false, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "n");
assertTrue(valid);
assertEquals(false, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "false");
assertTrue(valid);
assertEquals(false, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "off");
assertTrue(valid);
assertEquals(false, fb.getFooBoolean().booleanValue());
valid = BeanUtil.setProperty(fb, propName, "0");
assertTrue(valid);
assertEquals(false, fb.getFooBoolean().booleanValue());
// boolean
propName = "fooboolean";
valid = BeanUtil.setProperty(fb, propName, Boolean.TRUE);
assertTrue(valid);
assertEquals(true, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, new Boolean(false));
assertTrue(valid);
assertEquals(false, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, null);
assertFalse(valid);
assertEquals(false, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "yes");
assertTrue(valid);
assertEquals(true, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "y");
assertTrue(valid);
assertEquals(true, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "true");
assertTrue(valid);
assertEquals(true, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "on");
assertTrue(valid);
assertEquals(true, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "1");
assertTrue(valid);
assertEquals(true, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "no");
assertTrue(valid);
assertEquals(false, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "n");
assertTrue(valid);
assertEquals(false, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "false");
assertTrue(valid);
assertEquals(false, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "off");
assertTrue(valid);
assertEquals(false, fb.getFooboolean());
valid = BeanUtil.setProperty(fb, propName, "0");
assertTrue(valid);
assertEquals(false, fb.getFooboolean());
// Float
propName = "fooFloat";
valid = BeanUtil.setProperty(fb, propName, new Float(1.1));
assertTrue(valid);
assertEquals(1.1, fb.getFooFloat().floatValue(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3.0, fb.getFooFloat().floatValue(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, null);
assertTrue(valid);
assertNull(fb.getFooFloat());
valid = BeanUtil.setProperty(fb, propName, "2.2"); // valid string
assertTrue(valid);
assertEquals(2.2, fb.getFooFloat().floatValue(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, "x"); // invalid string - value stays the same
assertFalse(valid);
assertEquals(2.2, fb.getFooFloat().floatValue(), 0.0005);
// float
propName = "foofloat";
valid = BeanUtil.setProperty(fb, propName, new Float(1.1));
assertTrue(valid);
assertEquals(1.1, fb.getFoofloat(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3.0, fb.getFoofloat(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, null); // null is not a long
assertFalse(valid);
assertEquals(3.0, fb.getFoofloat(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, "2.2"); // valid string
assertTrue(valid);
assertEquals(2.2, fb.getFoofloat(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, "w"); // invalid string
assertFalse(valid);
assertEquals(2.2, fb.getFoofloat(), 0.0005);
// Double
propName = "fooDouble";
valid = BeanUtil.setProperty(fb, propName, new Double(1.1));
assertTrue(valid);
assertEquals(1.1, fb.getFooDouble().doubleValue(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3.0, fb.getFooDouble().doubleValue(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, null);
assertTrue(valid);
assertNull(fb.getFooDouble());
valid = BeanUtil.setProperty(fb, propName, "2.2"); // valid string
assertTrue(valid);
assertEquals(2.2, fb.getFooDouble().doubleValue(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, "x"); // invalid string - value stays the same
assertFalse(valid);
assertEquals(2.2, fb.getFooDouble().doubleValue(), 0.0005);
// double
propName = "foodouble";
valid = BeanUtil.setProperty(fb, propName, new Double(1.1));
assertTrue(valid);
assertEquals(1.1, fb.getFoodouble(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, new Integer(3));
assertTrue(valid);
assertEquals(3.0, fb.getFoodouble(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, null); // null is not a long
assertFalse(valid);
assertEquals(3.0, fb.getFoodouble(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, "2.2"); // valid string
assertTrue(valid);
assertEquals(2.2, fb.getFoodouble(), 0.0005);
valid = BeanUtil.setProperty(fb, propName, "w"); // invalid string
assertFalse(valid);
assertEquals(2.2, fb.getFoodouble(), 0.0005);
}
public void testSetPropertySql() {
FooBean2 fb = new FooBean2();
String propName = "fooTimestamp";
Timestamp ts = new Timestamp(101, 0, 17, 1, 2, 3, 4);
boolean valid = BeanUtil.setProperty(fb, propName, ts);
assertTrue(valid);
assertEquals("2001-01-17 01:02:03.000000004", fb.getFooTimestamp().toString());
propName = "fooTime";
Time t = new Time(17, 13, 15);
valid = BeanUtil.setProperty(fb, propName, t);
assertTrue(valid);
assertEquals("17:13:15", fb.getFooTime().toString());
propName = "fooDate";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -