final FieldDefinition postalDef =
getFieldDefinition("postal", addressFields);
final FieldDefinition emailDef =
getFieldDefinition("email", addressFields);
final ImmutableStringType emailType =
(ImmutableStringType) emailDef.getType();
assertNull(emailType.getEnumeratedConstraint());
final ImmutableStructureType postalType =
(ImmutableStructureType) postalDef.getType();
final Set postalFields = postalType.getFields();
assertEquals(4, postalFields.size());
final FieldDefinition cityDef = getFieldDefinition("city", postalFields);
final FieldDefinition streetNameDef =
getFieldDefinition("street-name", postalFields);
final FieldDefinition streetTypeDef =
getFieldDefinition("street-type", postalFields);
final FieldDefinition houseNumberDef =
getFieldDefinition("house-number", postalFields);
final ImmutableStringType cityType =
(ImmutableStringType) cityDef.getType();
assertNull(cityType.getEnumeratedConstraint());
final ImmutableStringType streetNameType =
(ImmutableStringType) streetNameDef.getType();
assertNull(streetNameType.getEnumeratedConstraint());
final ImmutableStringType streetTypeType =
(ImmutableStringType) streetTypeDef.getType();
final ImmutableEnumeratedConstraint enumeratedConstraint =
streetTypeType.getEnumeratedConstraint();
final Iterator constraintIter =
enumeratedConstraint.getEnumeratedValues().iterator();
final ImmutableStringValue road =
(ImmutableStringValue) constraintIter.next();
assertEquals("Road", road.getValueAsString());