- Revision
- 1365
- Author
- mauro
- Date
- 2009-10-26 16:15:24 -0500 (Mon, 26 Oct 2009)
Log Message
JBEHAVE-175: Added support for BigDecimal and BigInteger.
Modified Paths
Diff
Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/steps/ParameterConvertersBehaviour.java (1364 => 1365)
--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/steps/ParameterConvertersBehaviour.java 2009-10-26 20:59:58 UTC (rev 1364) +++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/steps/ParameterConvertersBehaviour.java 2009-10-26 21:15:24 UTC (rev 1365) @@ -5,6 +5,8 @@ import java.beans.IntrospectionException; import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.math.BigInteger; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; @@ -19,9 +21,18 @@ .getInstance(); @Test - public void shouldConvertStringsToNumbers() { + public void shouldConvertValuesToNumbers() { ParameterConverters converters = new ParameterConverters(); + ensureThat((Integer) converters.convert("3", Integer.class), equalTo(3)); ensureThat((Integer) converters.convert("3", int.class), equalTo(3)); + ensureThat((Float) converters.convert("3.0", Float.class), equalTo(3.0f)); + ensureThat((Float) converters.convert("3.0", float.class), equalTo(3.0f)); + ensureThat((Long) converters.convert("3", Long.class), equalTo(3L)); + ensureThat((Long) converters.convert("3", long.class), equalTo(3L)); + ensureThat((Double) converters.convert("3.0", Double.class), equalTo(3.0d)); + ensureThat((Double) converters.convert("3.0", double.class), equalTo(3.0d)); + ensureThat((BigInteger) converters.convert("3", BigInteger.class), equalTo(new BigInteger("3"))); + ensureThat((BigDecimal) converters.convert("3.0", BigDecimal.class), equalTo(new BigDecimal("3.0"))); } @SuppressWarnings("unchecked")
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/steps/ParameterConverters.java (1364 => 1365)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/steps/ParameterConverters.java 2009-10-26 20:59:58 UTC (rev 1364) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/steps/ParameterConverters.java 2009-10-26 21:15:24 UTC (rev 1365) @@ -4,6 +4,8 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.math.BigInteger; import java.text.NumberFormat; import java.text.ParseException; import java.util.ArrayList; @@ -80,7 +82,7 @@ @SuppressWarnings("unchecked") private static List<Class> acceptedClasses = asList(new Class[] { Integer.class, int.class, Long.class, long.class, Double.class, - double.class, Float.class, float.class }); + double.class, Float.class, float.class, BigDecimal.class, BigInteger.class }); public boolean accept(Type type) { if (type instanceof Class<?>) { @@ -98,6 +100,10 @@ return Double.valueOf(value); } else if (type == Float.class || type == float.class) { return Float.valueOf(value); + } else if (type == BigDecimal.class) { + return new BigDecimal(value); + } else if (type == BigInteger.class) { + return new BigInteger(value); } return value; }
To unsubscribe from this list please visit: