Title: [1365] trunk/core/jbehave-core/src/java/org/jbehave/scenario/steps: JBEHAVE-175: Added support for BigDecimal and BigInteger.
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:

http://xircles.codehaus.org/manage_email

Reply via email to