|
|
|
|
@ -36,8 +36,10 @@ import java.util.Optional;
@@ -36,8 +36,10 @@ import java.util.Optional;
|
|
|
|
|
import java.util.Set; |
|
|
|
|
import java.util.TreeSet; |
|
|
|
|
|
|
|
|
|
import org.junit.Rule; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
|
import org.junit.rules.ExpectedException; |
|
|
|
|
import org.springframework.beans.InvalidPropertyException; |
|
|
|
|
import org.springframework.beans.MutablePropertyValues; |
|
|
|
|
import org.springframework.beans.NotWritablePropertyException; |
|
|
|
|
@ -69,9 +71,13 @@ import static org.junit.Assert.*;
@@ -69,9 +71,13 @@ import static org.junit.Assert.*;
|
|
|
|
|
* @author Rod Johnson |
|
|
|
|
* @author Juergen Hoeller |
|
|
|
|
* @author Rob Harrop |
|
|
|
|
* @author Kazuki Shimizu |
|
|
|
|
*/ |
|
|
|
|
public class DataBinderTests { |
|
|
|
|
|
|
|
|
|
@Rule |
|
|
|
|
public ExpectedException expectedException = ExpectedException.none(); |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testBindingNoErrors() throws Exception { |
|
|
|
|
TestBean rod = new TestBean(); |
|
|
|
|
@ -1982,6 +1988,30 @@ public class DataBinderTests {
@@ -1982,6 +1988,30 @@ public class DataBinderTests {
|
|
|
|
|
assertEquals("age", binder.getBindingResult().getFieldError("age").getField()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // SPR-14888
|
|
|
|
|
public void testSetAutoGrowCollectionLimit() { |
|
|
|
|
BeanWithIntegerList tb = new BeanWithIntegerList(); |
|
|
|
|
DataBinder binder = new DataBinder(tb); |
|
|
|
|
binder.setAutoGrowCollectionLimit(257); |
|
|
|
|
MutablePropertyValues pvs = new MutablePropertyValues(); |
|
|
|
|
pvs.add("integerList[256]", "1"); |
|
|
|
|
|
|
|
|
|
binder.bind(pvs); |
|
|
|
|
assertEquals(257, tb.getIntegerList().size()); |
|
|
|
|
assertEquals(Integer.valueOf(1), tb.getIntegerList().get(256)); |
|
|
|
|
assertEquals(Integer.valueOf(1), binder.getBindingResult().getFieldValue("integerList[256]")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // SPR-14888
|
|
|
|
|
public void testSetAutoGrowCollectionLimitAfterInitialization() { |
|
|
|
|
|
|
|
|
|
expectedException.expect(IllegalStateException.class); |
|
|
|
|
expectedException.expectMessage("DataBinder is already initialized - call setAutoGrowCollectionLimit before other configuration methods"); |
|
|
|
|
|
|
|
|
|
DataBinder binder = new DataBinder(new BeanWithIntegerList()); |
|
|
|
|
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); |
|
|
|
|
binder.setAutoGrowCollectionLimit(257); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unused") |
|
|
|
|
private static class BeanWithIntegerList { |
|
|
|
|
|