@Override public Integer convertToDatabaseColumn(Gender gender) { if (gender == null) { gender = DEFAULT_GENDER; } return gender.getIsoCode(); }
@Override public Gender convertToEntityAttribute(Integer isoCode) { // it may be null on an empty database/column if (isoCode == null) { return DEFAULT_GENDER; } int intIsoCode = isoCode; for (Gender gender : Gender.values()) { if (gender.getIsoCode() == intIsoCode) { return gender; } } return DEFAULT_GENDER; } }
@Test public void testGenderConverter() { GenderConverter genderConverter = new GenderConverter(); assertEquals(genderConverter.convertToDatabaseColumn(null).intValue(), Gender.NOT_KNOWN.getIsoCode()); assertEquals(genderConverter.convertToDatabaseColumn(Gender.NOT_KNOWN).intValue(), Gender.NOT_KNOWN.getIsoCode()); assertEquals(genderConverter.convertToDatabaseColumn(Gender.MALE).intValue(), Gender.MALE.getIsoCode()); assertEquals(genderConverter.convertToDatabaseColumn(Gender.FEMALE).intValue(), Gender.FEMALE.getIsoCode()); assertEquals(genderConverter.convertToDatabaseColumn(Gender.NOT_APPLICABLE).intValue(), Gender.NOT_APPLICABLE.getIsoCode()); assertEquals(genderConverter.convertToEntityAttribute(null), Gender.NOT_KNOWN); assertEquals(genderConverter.convertToEntityAttribute(Integer.MAX_VALUE), Gender.NOT_KNOWN); assertEquals(genderConverter.convertToEntityAttribute(Integer.MIN_VALUE), Gender.NOT_KNOWN); assertEquals(genderConverter.convertToEntityAttribute(0), Gender.NOT_KNOWN); assertEquals(genderConverter.convertToEntityAttribute(1), Gender.MALE); assertEquals(genderConverter.convertToEntityAttribute(2), Gender.FEMALE); assertEquals(genderConverter.convertToEntityAttribute(9), Gender.NOT_APPLICABLE); }
assertEquals(e.getGender().getI18nKey(), Gender.NOT_KNOWN.getI18nKey()); assertEquals(e.getGender().ordinal(), Gender.NOT_KNOWN.ordinal()); assertEquals(e.getGender().getIsoCode(), Gender.NOT_KNOWN.getIsoCode()); assertEquals(e.getGender().getI18nKey(), Gender.MALE.getI18nKey()); assertEquals(e.getGender().ordinal(), Gender.MALE.ordinal()); assertEquals(e.getGender().getIsoCode(), Gender.MALE.getIsoCode()); assertEquals(e.getGender().getI18nKey(), Gender.FEMALE.getI18nKey()); assertEquals(e.getGender().ordinal(), Gender.FEMALE.ordinal()); assertEquals(e.getGender().getIsoCode(), Gender.FEMALE.getIsoCode()); assertEquals(e.getGender().getI18nKey(), Gender.NOT_APPLICABLE.getI18nKey()); assertEquals(e.getGender().ordinal(), Gender.NOT_APPLICABLE.ordinal()); assertEquals(e.getGender().getIsoCode(), Gender.NOT_APPLICABLE.getIsoCode());