From 42990953f0feb80c84d86e6f3e43b69a8d955573 Mon Sep 17 00:00:00 2001 From: JKLedzion Date: Mon, 14 Feb 2022 11:11:15 +0100 Subject: [PATCH 1/2] BEANUTILS-550: correction of returning default value by StringConverter --- .../beanutils2/converters/AbstractConverter.java | 3 --- .../apache/commons/beanutils2/BeanUtilsTestCase.java | 7 +++++++ .../commons/beanutils2/DynaBeanUtilsTestCase.java | 8 ++++++++ .../converters/StringConverterTestCase.java | 11 +++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java b/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java index af44f8881..fa2301740 100644 --- a/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java +++ b/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java @@ -295,9 +295,6 @@ protected String convertToString(final Object value) throws Throwable { * @return The default value for the specified type. */ protected Object getDefault(final Class type) { - if (type.equals(String.class)) { - return null; - } return defaultValue; } diff --git a/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java index 69347fc26..120a984e1 100644 --- a/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java @@ -27,6 +27,7 @@ import org.apache.commons.beanutils2.converters.ArrayConverter; import org.apache.commons.beanutils2.converters.DateConverter; +import org.apache.commons.beanutils2.converters.StringConverter; import junit.framework.Test; import junit.framework.TestCase; @@ -146,6 +147,12 @@ protected void setUpShared() { testCalendar.set(Calendar.MILLISECOND, 0); testUtilDate = testCalendar.getTime(); testStringDate = "28.12.1992"; + + /** + * Replacing default StringConverter (having default value) with StringConverter without default value + * to allow testing of nullProperty. + */ + ConvertUtils.register(new StringConverter(), String.class); } /** diff --git a/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java index 80fc9edc2..df8ebdd8d 100644 --- a/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java @@ -24,6 +24,8 @@ import java.util.List; import java.util.Map; +import org.apache.commons.beanutils2.converters.StringConverter; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; @@ -96,6 +98,11 @@ public DynaBeanUtilsTestCase(final String name) { public void setUp() throws Exception { ConvertUtils.deregister(); + /** + * Replacing default StringConverter (having default value) with StringConverter without default value + * to allow testing of nullProperty. + */ + ConvertUtils.register(new StringConverter(), String.class); // Instantiate a new DynaBean instance final DynaClass dynaClass = createDynaClass(); @@ -812,6 +819,7 @@ public void testPopulateNested() { */ public void testPopulateScalar() { + try { bean.set("nullProperty", "non-null value"); diff --git a/src/test/java/org/apache/commons/beanutils2/converters/StringConverterTestCase.java b/src/test/java/org/apache/commons/beanutils2/converters/StringConverterTestCase.java index 91beae706..a1c220bc3 100644 --- a/src/test/java/org/apache/commons/beanutils2/converters/StringConverterTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/converters/StringConverterTestCase.java @@ -25,6 +25,9 @@ * */ public class StringConverterTestCase extends TestCase { + + private static final String DEFAULT_VALUE = "default"; + /** The converter to be tested. */ private StringConverter converter; @@ -61,4 +64,12 @@ public void testConvertToUnsupportedType() { public void testDefaultType() { assertEquals("Wrong default type", String.class, converter.getDefaultType()); } + + /** + * Tests whether the correct default value is returned. + */ + public void testDefaultValue() { + converter.setDefaultValue(DEFAULT_VALUE); + assertEquals("Wrong default value", DEFAULT_VALUE, converter.convert(String.class, null)); + } } From dfdb7621954990834c13f5dcfc211a4f811a24fc Mon Sep 17 00:00:00 2001 From: JKLedzion Date: Tue, 15 Feb 2022 08:04:27 +0100 Subject: [PATCH 2/2] BEANUTILS-550: refactoring --- .../java/org/apache/commons/beanutils2/BeanUtilsTestCase.java | 2 +- .../org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java index 120a984e1..d530bc409 100644 --- a/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/BeanUtilsTestCase.java @@ -148,7 +148,7 @@ protected void setUpShared() { testUtilDate = testCalendar.getTime(); testStringDate = "28.12.1992"; - /** + /* * Replacing default StringConverter (having default value) with StringConverter without default value * to allow testing of nullProperty. */ diff --git a/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java index df8ebdd8d..823b9a665 100644 --- a/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/DynaBeanUtilsTestCase.java @@ -98,7 +98,7 @@ public DynaBeanUtilsTestCase(final String name) { public void setUp() throws Exception { ConvertUtils.deregister(); - /** + /* * Replacing default StringConverter (having default value) with StringConverter without default value * to allow testing of nullProperty. */