LongTypeConverter extends LongPrimitiveTypeConverter { @Override public Object convert(String value) throws ConversionException { return (Long)super.convert(value); }  @Override Object convert(String value);  }
@Test public void validConversions() throws Exception { for (TypeConverter pc : pcs) { Object obj = pc.convert("0"); Assert.assertEquals(obj, TypeConverterUtil.convert("0", obj.getClass())); Assert.assertEquals(Long.valueOf(0), pc.convert("0")); Assert.assertEquals(Long.valueOf(-9223372036854775808L), pc.convert("-9223372036854775808")); Assert.assertEquals(Long.valueOf(9223372036854775807L), pc.convert("9223372036854775807")); Assert.assertEquals(Long.valueOf(0), pc.convert("0x0")); Assert.assertEquals(Long.valueOf(0), pc.convert("0X0")); Assert.assertEquals(Long.valueOf(9223372036854775807L), pc.convert("0x7FFFFFFFFFFFFFFF")); Assert.assertEquals(Long.valueOf(0xFFFFFFFFFFFFFFFFL), pc.convert("0xFFFFFFFFFFFFFFFF")); } }
@Test public void timeUnits() throws Exception { for (TypeConverter pc : pcs) { Assert.assertEquals(Long.valueOf(0L), pc.convert("0.second")); Assert.assertEquals(Long.valueOf(0L), pc.convert("0.seconds")); Assert.assertEquals(Long.valueOf(1000L), pc.convert("1.second")); Assert.assertEquals(Long.valueOf(30000L), pc.convert("30.seconds")); Assert.assertEquals(Long.valueOf(30L), pc.convert("30.millis")); Assert.assertEquals(Long.valueOf(2L*60L*60L*1000L), pc.convert("2.hours")); Assert.assertEquals(Long.valueOf(2L*24L*60L*60L*1000L), pc.convert("2.days")); Assert.assertEquals(Long.valueOf(2L*60L*1000L), pc.convert("2.minutes")); } }
@Test public void overflow() throws Exception { for (TypeConverter pc : pcs) { try { pc.convert("0x10000000000000000"); } catch (ConversionOverflowException e) { } } }
@Test public void negativeInHexNotAllowed() throws Exception { for (TypeConverter pc : pcs) { try { pc.convert("-0x01"); } catch (ConversionException e) { } } }