### Question:
PropertyList implements Serializable { public Class<?> getPropertyType(String propertyName) throws IllegalArgumentException { assert propertyName != null : "propertyName must not be null"; if (!getAllAvailablePropertyNames().contains(propertyName)) { throw new IllegalArgumentException("Illegal property name: " + propertyName); } if (isNestedProperty(propertyName)) { return getNestedProperty(propertyName).getType(); } else { return metadata.getProperty(propertyName).getType(); } } PropertyList(ClassMetadata<T> metadata);  PropertyList(PropertyList<T> parentList); ClassMetadata<T> getClassMetadata(); PropertyList<T> getParentList(); void setSortProperty(String propertyName, String sortPropertyName); void addNestedProperty(String propertyName); boolean removeProperty(String propertyName); Set<String> getAllAvailablePropertyNames(); Set<String> getPropertyNames(); Set<String> getPersistentPropertyNames(); Map<String, String> getSortablePropertyMap(); Set<String> getNestedPropertyNames(); Class<?> getPropertyType(String propertyName); boolean isPropertyWritable(String propertyName); Object getPropertyValue(T object, String propertyName); void setPropertyValue(T object, String propertyName,
            Object propertyValue); PropertyKind getPropertyKind(String propertyName); boolean isPropertyLazyLoaded(String propertyName);  }### Answer:
@Test public void testGetPropertyType_SingleProperty() { assertSame(Date.class, propertyList.getPropertyType("dateOfBirth")); assertSame(Date.class, childPropertyList.getPropertyType("dateOfBirth")); }