ognl type conversion adaption

This commit is contained in:
Keith Donald
2008-07-05 21:21:33 +00:00
parent 045dc129e8
commit 421316013b
11 changed files with 106 additions and 80 deletions

View File

@@ -161,4 +161,11 @@ public class OgnlExpressionParserTests extends TestCase {
assertEquals(boolean.class, e.getValueType(bean));
}
public void testSetComplexDateType() {
String value = "2008-07-04";
Expression e = parser.parseExpression("date", null);
e.setValue(bean, value);
assertEquals(1215144000000L, bean.getDate().getTime());
}
}

View File

@@ -16,6 +16,7 @@
package org.springframework.binding.expression.ognl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class TestBean {
@@ -24,6 +25,8 @@ public class TestBean {
private int number;
private Date date;
private List list = new ArrayList();
public boolean isFlag() {
@@ -49,4 +52,13 @@ public class TestBean {
public void setList(List list) {
this.list = list;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}

View File

@@ -4,11 +4,9 @@ import java.util.Locale;
import junit.framework.TestCase;
import org.springframework.binding.convert.service.DefaultConversionService;
import org.springframework.binding.expression.ExpressionParser;
import org.springframework.binding.expression.el.DefaultExpressionFactoryUtils;
import org.springframework.binding.expression.el.ELExpressionParser;
import org.springframework.binding.expression.support.FluentParserContext;
import org.springframework.binding.mapping.impl.DefaultMapper;
import org.springframework.binding.mapping.impl.DefaultMapping;
@@ -45,38 +43,6 @@ public class DefaultMapperTests extends TestCase {
}).size());
}
public void testMappingWithAutomaticConversion() {
DefaultMapping mapping1 = new DefaultMapping(parser.parseExpression("foo", new FluentParserContext()
.expectResult(Integer.class)), parser.parseExpression("boop", null));
mapper.addMapping(mapping1);
TestBean bean1 = new TestBean();
bean1.foo = "12345";
TestBean2 bean2 = new TestBean2();
MappingResults results = mapper.map(bean1, bean2);
assertSame(bean1, results.getSource());
assertSame(bean2, results.getTarget());
assertEquals(1, results.getAllResults().size());
assertEquals(0, results.getErrorResults().size());
assertEquals(new Integer(12345), bean2.boop);
}
public void testMappingWithCustomConversionService() {
DefaultConversionService conversionService = new DefaultConversionService();
mapper.setConversionService(conversionService);
DefaultMapping mapping1 = new DefaultMapping(parser.parseExpression("foo", null), parser.parseExpression(
"beep", null));
mapper.addMapping(mapping1);
TestBean bean1 = new TestBean();
bean1.foo = "en";
TestBean2 bean2 = new TestBean2();
MappingResults results = mapper.map(bean1, bean2);
assertSame(bean1, results.getSource());
assertSame(bean2, results.getTarget());
assertEquals(1, results.getAllResults().size());
assertEquals(0, results.getErrorResults().size());
assertEquals(Locale.ENGLISH, bean2.beep);
}
public static class TestBean {
private String foo;