@Override public String toString(Object obj, EntityFieldType entityFieldType) { if (obj == null) { return null; } FieldTypeEnum fieldType = entityFieldType.getFieldType(); Function<Object, String> function = mappers.get(fieldType); return function.apply(obj); }
@Test public void timeStampTest() { EntityFieldType type = getField("timeStamp"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.TIMESTAMP, type.getFieldType()); }
@Test public void sqlTimeStampTest() { EntityFieldType type = getField("sqlTimeStamp"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.TIMESTAMP, type.getFieldType()); }
@Test public void localDateTimeTest() { EntityFieldType type = getField("localDateTime"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.LOCALDATETIME, type.getFieldType()); }
@Test public void enumStringTest() { EntityFieldType type = getField("enumString"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.ENUMSTRING, type.getFieldType()); }
@Test public void intPrimitiveTest() { EntityFieldType type = getField("intPrimitive"); assertTrue(type.isPrimitive()); assertEquals(FieldTypeEnum.INT, type.getFieldType()); }
@Test public void longObjectTest() { EntityFieldType type = getField("longObject"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.LONG, type.getFieldType()); }
@Test public void floatPrimitiveTest() { EntityFieldType type = getField("floatPrimitive"); assertTrue(type.isPrimitive()); assertEquals(FieldTypeEnum.FLOAT, type.getFieldType()); }
@Test public void enumUnAnnotatedTest() { EntityFieldType type = getField("enumUnAnnotated"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.ENUMORDINAL, type.getFieldType()); }
@Test public void enumOrdinalTest() { EntityFieldType type = getField("enumOrdinal"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.ENUMORDINAL, type.getFieldType()); }
@Test public void intObjectTest() { EntityFieldType type = getField("intObject"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.INT, type.getFieldType()); }
@Test public void charPrimitiveTest() { EntityFieldType type = getField("charPrimitive"); assertTrue(type.isPrimitive()); assertEquals(FieldTypeEnum.CHAR, type.getFieldType()); }
@Test public void floatObjectTest() { EntityFieldType type = getField("floatObject"); assertFalse(type.isPrimitive()); assertEquals(FieldTypeEnum.FLOAT, type.getFieldType()); }
@Test public void inspectEntitySequenceId() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(EntityWithGeneratedSequenceId.class); assertEquals(2, fields.size()); FieldInfo field = fields.get(0); EntityFieldType fieldType = field.getFieldType(); assertFalse(fieldType.isPrimitive()); assertEquals(FieldTypeEnum.LONG, fieldType.getFieldType()); assertFalse(fieldType.isIdentityId()); }
@Test public void inspectAnEntityWithManyToOneJoinColumn() { EntityInspectHelper entityInfo = new EntityInspectHelper(Foo.class); FieldInfo id = entityInfo.findField("id"); assertEquals(FieldTypeEnum.LONG, id.getFieldType().getFieldType()); assertEquals("id", id.getColumnName()); FieldInfo street = entityInfo.findField("productRef.id"); assertEquals(FieldTypeEnum.LONG, street.getFieldType().getFieldType()); assertEquals("foo_id_product_fk", street.getColumnName()); }
@Test public void testExplicitDateField() { EntityInfoBuilder<SimpleEntity> builder = new EntityInfoBuilder<>(SimpleEntity.class, "simple_entity"); builder.addField("birthDay", "birthday", FieldTypeEnum.DATE); EntityInfoHelper entityInfo = new EntityInfoHelper(builder); ColumnInfo column = entityInfo.findColumn("birthday"); assertEquals("birthday", column.getColumnName()); assertEquals(FieldTypeEnum.DATE, column.getFieldType().getFieldType()); assertFalse(column.getFieldType().isPrimitive()); assertEquals(simple.getBirthDay(), column.getAccessor().apply(simple)); }
@Test public void testExistentPathField() { EntityInfoBuilder<SimpleEntity> builder = new EntityInfoBuilder<>(SimpleEntity.class, "simple_entity"); builder.addField("city.name", "city_name"); EntityInfoHelper entityInfo = new EntityInfoHelper(builder); ColumnInfo column = entityInfo.findColumn("city_name"); assertEquals("city_name", column.getColumnName()); assertEquals(FieldTypeEnum.STRING, column.getFieldType().getFieldType()); assertFalse(column.getFieldType().isPrimitive()); assertEquals(city.getName(), column.getAccessor().apply(simple)); }
@Test public void testExplicitEnumField() { EntityInfoBuilder<SimpleEntity> builder = new EntityInfoBuilder<>(SimpleEntity.class, "simple_entity"); builder.addField("floor", "floor", FieldTypeEnum.ENUMSTRING); EntityInfoHelper entityInfo = new EntityInfoHelper(builder); ColumnInfo column = entityInfo.findColumn("floor"); assertEquals("floor", column.getColumnName()); assertEquals(FieldTypeEnum.ENUMSTRING, column.getFieldType().getFieldType()); assertFalse(column.getFieldType().isPrimitive()); assertEquals(simple.getFloor(), column.getAccessor().apply(simple)); }
@Test public void testColumnChildEntity() { EntityInfoBuilder<SimpleEntity> builder = new EntityInfoBuilder<>(SimpleEntity.class, "simple_entity"); builder.addColumn("city_name", FieldTypeEnum.STRING, obj -> obj.getCity().getName()); EntityInfoHelper entityInfo = new EntityInfoHelper(builder); ColumnInfo column = entityInfo.findColumn("city_name"); assertEquals("city_name", column.getColumnName()); assertEquals(FieldTypeEnum.STRING, column.getFieldType().getFieldType()); assertFalse(column.getFieldType().isPrimitive()); assertEquals(simple.getCity().getName(), column.getAccessor().apply(simple)); }
@Test public void testSyntheticColumn() { EntityInfoBuilder<SimpleEntity> builder = new EntityInfoBuilder<>(SimpleEntity.class, "simple_entity"); builder.addColumn("city_code", FieldTypeEnum.STRING, obj -> obj.getCity().getId() + ": " + obj.getCity().getName()); EntityInfoHelper entityInfo = new EntityInfoHelper(builder); ColumnInfo column = entityInfo.findColumn("city_code"); assertEquals("city_code", column.getColumnName()); assertEquals(FieldTypeEnum.STRING, column.getFieldType().getFieldType()); assertFalse(column.getFieldType().isPrimitive()); assertEquals(simple.getCity().getId() + ": " + simple.getCity().getName(), column.getAccessor().apply(simple)); }