* @throws Exception if failed
*/
@Test
public void types() throws Exception {
DataModelDefinition<Simple> def = new SimpleDataModelDefinition<Simple>(Simple.class);
JsonObject json = new JsonObject();
json.addProperty("boolean_value", true);
json.addProperty("byte_value", (byte) 100);
json.addProperty("short_value", (short) 200);
json.addProperty("long_value", 300L);
json.addProperty("big_integer_value", new BigInteger("123456"));
json.addProperty("float_value", 1.0f);
json.addProperty("double_value", 1.5d);
json.addProperty("big_decimal_value", new BigDecimal("12.3456"));
json.addProperty("date_value", "2012-01-02");
json.addProperty("datetime_value", "2011-12-31 10:20:30");
DataModelReflection ref = JsonObjectDriver.convert(def, json);
Simple object = def.toObject(ref);
assertThat(object.booleanValue, is(true));