@Test
public void testNumberWrapper() throws Exception
{
String value = "123";
NumberWrapper wrapper = new NumberWrapper();
wrapper.setElement(createElement("number", value));
assert new Short(value).equals(wrapper.convert(Short.class));
assert wrapper.convert(Short.TYPE).equals(Short.parseShort(value));
assert new Integer(value).equals(wrapper.convert(Integer.class));
assert wrapper.convert(Integer.TYPE).equals(Integer.parseInt(value));
assert new Long(value).equals(wrapper.convert(Long.class));
assert wrapper.convert(Long.TYPE).equals(Long.parseLong(value));
assert new Byte(value).equals(wrapper.convert(Byte.class));
assert wrapper.convert(Byte.TYPE).equals(Byte.parseByte(value));
assert value.equals(wrapper.convert(String.class));
value = "123.456";
wrapper.setElement(createElement("number", value));
assert new Double(value).equals(wrapper.convert(Double.class));
assert Double.valueOf(value).equals(wrapper.convert(Double.TYPE));
assert new Float(value).equals(wrapper.convert(Float.class));
assert Float.valueOf(value).equals(wrapper.convert(Float.TYPE));
value = "";
wrapper.setElement(createElement("number", value));
assert null == wrapper.convert(Short.class);
assert null == wrapper.convert(Integer.class);
assert null == wrapper.convert(Long.class);
assert null == wrapper.convert(Float.class);
assert null == wrapper.convert(Double.class);
assert null == wrapper.convert(Byte.class);
try
{
// Attempt an invalid conversion
wrapper.convert(InvalidClass.class);
assert false;
}
catch (ConversionException ex)
{
}
assert ConversionScore.exact == wrapper.conversionScore(Integer.class);
assert ConversionScore.exact == wrapper.conversionScore(Integer.TYPE);
assert ConversionScore.compatible == wrapper
.conversionScore(String.class);
assert ConversionScore.compatible == wrapper
.conversionScore(Object.class);
assert ConversionScore.nomatch == wrapper
.conversionScore(InvalidClass.class);
}