You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2011/11/28 04:20:57 UTC
svn commit: r1206966 - in /incubator/rave/trunk:
rave-components/rave-commons/src/main/java/org/apache/rave/util/
rave-components/rave-core/src/main/java/org/apache/rave/portal/model/
rave-components/rave-core/src/main/java/org/apache/rave/portal/model...
Author: mfranklin
Date: Mon Nov 28 03:20:56 2011
New Revision: 1206966
URL: http://svn.apache.org/viewvc?rev=1206966&view=rev
Log:
Modified all non-joined properties in FieldRestrictingPerson to use new core person model (Supports RAVE-347)
Added:
incubator/rave/trunk/rave-shindig/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java
Modified:
incubator/rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/CollectionUtils.java
incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java
incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java
incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java
Modified: incubator/rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/CollectionUtils.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/CollectionUtils.java?rev=1206966&r1=1206965&r2=1206966&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/CollectionUtils.java (original)
+++ incubator/rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/CollectionUtils.java Mon Nov 28 03:20:56 2011
@@ -133,4 +133,21 @@ public class CollectionUtils {
}
}
}
+
+ /**
+ * Gets a single value from a list
+ * @param list the list to get the value from
+ * @param <T> class of objects in the list
+ * @return the 0th element if the list has only 1 value, null if the list is empty or an exception if there is more than one element
+ */
+ public static <T> T getSingleValue(List<T> list) {
+ switch (list.size()) {
+ case 0:
+ return null;
+ case 1:
+ return list.get(0);
+ default:
+ throw new IllegalArgumentException("Expected 0 or 1 items in the collection but found " + list.size());
+ }
+ }
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java?rev=1206966&r1=1206965&r2=1206966&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java (original)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/Person.java Mon Nov 28 03:20:56 2011
@@ -258,7 +258,7 @@ public class Person implements BasicEnti
this.mappedProperties = mappedProperties;
}
- private static Map<String, List<PersonProperty>> createPropertyMap(List<PersonProperty> properties) {
+ protected static Map<String, List<PersonProperty>> createPropertyMap(List<PersonProperty> properties) {
Map<String, List<PersonProperty>> map = new HashMap<String, List<PersonProperty>>();
for(PersonProperty property : properties) {
List<PersonProperty> propertyList;
Modified: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java?rev=1206966&r1=1206965&r2=1206966&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java (original)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PersonProperty.java Mon Nov 28 03:20:56 2011
@@ -4,6 +4,10 @@ import org.apache.rave.persistence.Basic
import javax.persistence.*;
+/**
+ * A generic extension model for the {@link Person} that allows implementers to
+ * add fields to the Person not initially envisioned
+ */
@Entity
@Table(name = "person_property")
public class PersonProperty implements BasicEntity {
@@ -15,22 +19,53 @@ public class PersonProperty implements B
valueColumnName = "SEQ_COUNT", pkColumnValue = "person_property", allocationSize = 1, initialValue = 1)
private Long entityId;
+ /**
+ * The property type (IM, PhoneNumber, etc)
+ */
@Basic
@Column(name = "type")
private String type;
+ /**
+ * The value of the field
+ */
@Basic
@Column(name = "value")
private String value;
+ /**
+ * The distinguishing qualifier (Home, Work, etc)
+ */
@Basic
@Column(name = "qualifier")
private String qualifier;
+ /**
+ * Extended information related to the value
+ */
+ @Basic
+ @Column(name = "extended_value")
+ private String extendedValue;
+
+ /**
+ * Determines whether or not the property is the designated primary for the type
+ */
@Basic
@Column(name = "primary_value")
private Boolean primary;
+ public PersonProperty() {
+ }
+
+ public PersonProperty(Long entityId, String type, String value, String extendedValue, String qualifier, Boolean primary) {
+ this.entityId = entityId;
+ this.type = type;
+ this.value = value;
+ this.qualifier = qualifier;
+ this.primary = primary;
+ this.extendedValue = extendedValue;
+ }
+
public Long getEntityId() {
return entityId;
}
@@ -70,4 +105,12 @@ public class PersonProperty implements B
public void setPrimary(Boolean primary) {
this.primary = primary;
}
+
+ public String getExtendedValue() {
+ return extendedValue;
+ }
+
+ public void setExtendedValue(String extendedValue) {
+ this.extendedValue = extendedValue;
+ }
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java?rev=1206966&r1=1206965&r2=1206966&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java (original)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java Mon Nov 28 03:20:56 2011
@@ -27,6 +27,16 @@ public class ModelUtils {
private ModelUtils(){}
+ /**
+ * Represents the format used when converting {@link java.util.Date} objects to string representations for persistence
+ *
+ * ISO-8601 Compliant
+ *
+ * YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+0100)
+ */
+
+ public static final String STANDARD_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
+
public static void normalizeRegionWidgetPreferences(long regionWidgetId, List<RegionWidgetPreference> preferences) {
for (RegionWidgetPreference preference : preferences) {
normalizeRegionWidgetPreference(regionWidgetId, preference);
@@ -36,4 +46,4 @@ public class ModelUtils {
public static void normalizeRegionWidgetPreference(long regionWidgetId, RegionWidgetPreference regionWidgetPreference) {
regionWidgetPreference.setRegionWidgetId(regionWidgetId);
}
-}
\ No newline at end of file
+}
Modified: incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java?rev=1206966&r1=1206965&r2=1206966&view=diff
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java (original)
+++ incubator/rave/trunk/rave-shindig/src/main/java/org/apache/rave/opensocial/service/impl/FieldRestrictingPerson.java Mon Nov 28 03:20:56 2011
@@ -20,12 +20,19 @@
package org.apache.rave.opensocial.service.impl;
import org.apache.rave.exception.NotSupportedException;
+import org.apache.rave.portal.model.PersonProperty;
+import org.apache.rave.portal.model.util.ModelUtils;
import org.apache.rave.util.CollectionUtils;
import org.apache.shindig.protocol.model.Enum;
import org.apache.shindig.protocol.model.EnumImpl;
+import org.apache.shindig.social.core.model.BodyTypeImpl;
+import org.apache.shindig.social.core.model.ListFieldImpl;
+import org.apache.shindig.social.core.model.UrlImpl;
import org.apache.shindig.social.opensocial.model.*;
import java.io.Serializable;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -50,14 +57,15 @@ public class FieldRestrictingPerson impl
this.fields = fields;
}
+ //REQUIRED FIELD
@Override
public String getDisplayName() {
- return displayField(Field.DISPLAY_NAME) ? internal.getDisplayName() : null;
+ return internal.getDisplayName();
}
@Override
public void setDisplayName(String displayName) {
- internal.setDisplayName(displayName);
+ throw new NotSupportedException();
}
@Override
@@ -67,7 +75,7 @@ public class FieldRestrictingPerson impl
@Override
public void setAboutMe(String aboutMe) {
- internal.setAboutMe(aboutMe);
+ throw new NotSupportedException();
}
@Override
@@ -88,7 +96,7 @@ public class FieldRestrictingPerson impl
@Override
public void setActivities(List<String> activities) {
-
+ throw new NotSupportedException();
}
@Override
@@ -104,14 +112,13 @@ public class FieldRestrictingPerson impl
@Override
public Integer getAge() {
- //return displayField(Field.AGE) ? internal.getAge() : null;
-
- return null;
+ String value = getSingleValueFromProperties(Field.AGE);
+ return value == null ? null : Integer.parseInt(value);
}
@Override
public void setAge(Integer age) {
- // internal.setAge(age);
+ throw new NotSupportedException();
}
@Override
@@ -126,8 +133,8 @@ public class FieldRestrictingPerson impl
@Override
public Date getBirthday() {
- //return displayField(Field.BIRTHDAY) ? internal.getBirthday() : null;
- return null;
+ String value = getSingleValueFromProperties(Field.BIRTHDAY);
+ return value == null ? null : tryParseDate(value);
}
@Override
@@ -137,8 +144,17 @@ public class FieldRestrictingPerson impl
@Override
public BodyType getBodyType() {
- //return displayField(Field.BODY_TYPE) ? internal.getBodyType() : null;
- return null;
+ BodyType type = null;
+ if(displayField(Field.BODY_TYPE)) {
+ Map<String,String> map = mapValuesByQualifier(getFromProperties(Field.BODY_TYPE));
+ type = new BodyTypeImpl();
+ type.setBuild(map.get("build"));
+ type.setEyeColor(map.get("eyeColor"));
+ type.setHairColor(map.get("hairColor"));
+ type.setHeight(map.containsKey("height") ? Float.parseFloat(map.get("height")) : null);
+ type.setWeight(map.containsKey("weight") ? Float.parseFloat(map.get("weight")) : null);
+ }
+ return type;
}
@Override
@@ -168,13 +184,12 @@ public class FieldRestrictingPerson impl
@Override
public String getChildren() {
- //return displayField(Field.CHILDREN) ? internal.getChildren() : null;
- return null;
+ return getSingleValueFromProperties(Field.CHILDREN);
}
@Override
public void setChildren(String children) {
- //internal.setChildren(children);
+ throw new NotSupportedException();
}
@Override
@@ -190,18 +205,28 @@ public class FieldRestrictingPerson impl
@Override
public org.apache.shindig.protocol.model.Enum<Drinker> getDrinker() {
- //return displayField(Field.DRINKER) ? new EnumImpl<Drinker>(Drinker.valueOf(internal.getDrinker())) : null;
- return null;
+ String value = getSingleValueFromProperties(Field.DRINKER);
+ return value == null ? null : new EnumImpl<Drinker>(Drinker.valueOf(value));
}
@Override
public void setDrinker(org.apache.shindig.protocol.model.Enum<Drinker> newDrinker) {
- //internal.setDrinker(newDrinker.getValue().toString());
+ throw new NotSupportedException();
}
@Override
public List<ListField> getEmails() {
- return getListFromProperties(Field.EMAILS);
+ List<ListField> fields = getListFromProperties(Field.EMAILS);
+ //Override primary value as we will set a new primary with the registered address
+ for(ListField field : fields) {
+ field.setPrimary(false);
+ }
+ //Set the e-mail used to register with Rave as the "primary" address
+ ListFieldImpl listField = new ListFieldImpl("Registered", internal.getEmail());
+ listField.setPrimary(true);
+ fields.add(listField);
+
+ return fields;
}
@Override
@@ -211,24 +236,22 @@ public class FieldRestrictingPerson impl
@Override
public String getEthnicity() {
- //return displayField(Field.ETHNICITY) ? internal.getEthnicity() : null;
- return null;
+ return getSingleValueFromProperties(Field.ETHNICITY);
}
@Override
public void setEthnicity(String ethnicity) {
- //internal.setEthnicity(ethnicity);
+ throw new NotSupportedException();
}
@Override
public String getFashion() {
- //return displayField(Field.FASHION) ? internal.getFashion() : null;
- return null;
+ return getSingleValueFromProperties(Field.FASHION);
}
@Override
public void setFashion(String fashion) {
- //internal.setFashion(fashion);
+ throw new NotSupportedException();
}
@Override
@@ -243,24 +266,23 @@ public class FieldRestrictingPerson impl
@Override
public Gender getGender() {
- //return displayField(Field.GENDER) ? internal.getGender() : null;
- return null;
+ String value = getSingleValueFromProperties(Field.GENDER);
+ return value == null ? null : Gender.valueOf(value);
}
@Override
public void setGender(Gender newGender) {
- //internal.setGender(newGender);
+ throw new NotSupportedException();
}
@Override
public String getHappiestWhen() {
- //return displayField(Field.HAPPIEST_WHEN) ? internal.getHappiestWhen() : null;
- return null;
+ return getSingleValueFromProperties(Field.HAPPIEST_WHEN);
}
@Override
public void setHappiestWhen(String happiestWhen) {
- //internal.setHappiestWhen(happiestWhen);
+ throw new NotSupportedException();
}
@Override
@@ -285,18 +307,18 @@ public class FieldRestrictingPerson impl
@Override
public String getHumor() {
- //return displayField(Field.HUMOR) ? internal.getHumor() : null;
- return null;
+ return getSingleValueFromProperties(Field.HUMOR);
}
@Override
public void setHumor(String humor) {
- //internal.setHumor(humor);
+ throw new NotSupportedException();
}
+ //REQUIRED FIELD
@Override
public String getId() {
- return displayField(Field.ID) ? internal.getEntityId().toString() : null;
+ return internal.getEntityId().toString();
}
@Override
@@ -326,13 +348,12 @@ public class FieldRestrictingPerson impl
@Override
public String getJobInterests() {
- //return displayField(Field.JOB_INTERESTS) ? internal.getJobInterests() : null;
- return null;
+ return getSingleValueFromProperties(Field.JOB_INTERESTS);
}
@Override
public void setJobInterests(String jobInterests) {
- //internal.setJobInterests(jobInterests);
+ throw new NotSupportedException();
}
@Override
@@ -347,24 +368,23 @@ public class FieldRestrictingPerson impl
@Override
public Date getUpdated() {
- //return internal.getLastUpdated();
- return null;
+ String value = getSingleValueFromProperties(Field.LAST_UPDATED);
+ return value == null ? null : tryParseDate(value);
}
@Override
public void setUpdated(Date updated) {
- //internal.setLastUpdated(updated);
+ throw new NotSupportedException();
}
@Override
public String getLivingArrangement() {
- //return displayField(Field.LIVING_ARRANGEMENT) ? internal.getLivingArrangement() : null;
- return null;
+ return getSingleValueFromProperties(Field.LIVING_ARRANGEMENT);
}
@Override
public void setLivingArrangement(String livingArrangement) {
- //internal.setLivingArrangement(livingArrangement);
+ throw new NotSupportedException();
}
@Override
@@ -410,24 +430,23 @@ public class FieldRestrictingPerson impl
@Override
public Enum<NetworkPresence> getNetworkPresence() {
- //return displayField(Field.NETWORKPRESENCE) ? new EnumImpl<NetworkPresence>(NetworkPresence.valueOf(internal.getNetworkPresence())) : null;
- return null;
+ String value = getSingleValueFromProperties(Field.NETWORKPRESENCE);
+ return value == null ? null : new EnumImpl<NetworkPresence>(NetworkPresence.valueOf(value));
}
@Override
public void setNetworkPresence(Enum<NetworkPresence> networkPresence) {
- //internal.setNetworkPresence(networkPresence.getValue().toString());
+ throw new NotSupportedException();
}
@Override
public String getNickname() {
- //return displayField(Field.NICKNAME) ? internal.getNickname() : null;
- return null;
+ return displayField(Field.NICKNAME) ? internal.getPreferredName() : null;
}
@Override
public void setNickname(String nickname) {
- //internal.setNickname(nickname);
+ throw new NotSupportedException();
}
@Override
@@ -443,13 +462,12 @@ public class FieldRestrictingPerson impl
@Override
public String getPets() {
- //return displayField(Field.PETS) ? internal.getPets() : null;
- return null;
+ return getSingleValueFromProperties(Field.PETS);
}
@Override
public void setPets(String pets) {
- //internal.setPets(pets);
+ throw new NotSupportedException();
}
@Override
@@ -474,30 +492,28 @@ public class FieldRestrictingPerson impl
@Override
public String getPoliticalViews() {
- //return displayField(Field.POLITICAL_VIEWS) ? internal.getPoliticalViews() : null;
- return null;
+ return getSingleValueFromProperties(Field.POLITICAL_VIEWS);
}
@Override
public void setPoliticalViews(String politicalViews) {
- //internal.setPoliticalViews(politicalViews);
+ throw new NotSupportedException();
}
@Override
public String getPreferredUsername() {
- //return displayField(Field.PREFERRED_USERNAME) ? internal.getPreferredUsername() : null;
- return null;
+ return displayField(Field.PREFERRED_USERNAME) ? internal.getUsername() : null;
}
@Override
public void setPreferredUsername(String preferredString) {
- //internal.setPreferredUsername(preferredString);
+ throw new NotSupportedException();
}
@Override
public Url getProfileSong() {
- //return displayField(Field.PROFILE_SONG) ? internal.getProfileSong() : null;
- return null;
+ PersonProperty property = CollectionUtils.getSingleValue(getFromProperties(Field.PROFILE_SONG));
+ return convertToUrl(property);
}
@Override
@@ -507,8 +523,8 @@ public class FieldRestrictingPerson impl
@Override
public Url getProfileVideo() {
- //return displayField(Field.PROFILE_VIDEO) ? internal.getProfileVideo() : null;
- return null;
+ PersonProperty property = CollectionUtils.getSingleValue(getFromProperties(Field.PROFILE_VIDEO));
+ return property == null ? null :convertToUrl(property);
}
@Override
@@ -528,68 +544,63 @@ public class FieldRestrictingPerson impl
@Override
public String getRelationshipStatus() {
- //return displayField(Field.RELATIONSHIP_STATUS) ? internal.getRelationshipStatus() : null;
- return null;
+ return getSingleValueFromProperties(Field.RELATIONSHIP_STATUS);
}
@Override
public void setRelationshipStatus(String relationshipStatus) {
- //internal.setRelationshipStatus(relationshipStatus);
+ throw new NotSupportedException();
}
@Override
public String getReligion() {
- //return displayField(Field.RELIGION) ? internal.getReligion() : null;
- return null;
+ return getSingleValueFromProperties(Field.RELIGION);
}
@Override
public void setReligion(String religion) {
- //internal.setReligion(religion);
+ throw new NotSupportedException();
}
@Override
public String getRomance() {
- //return displayField(Field.ROMANCE) ? internal.getRomance() : null;
- return null;
+ return getSingleValueFromProperties(Field.ROMANCE);
}
@Override
public void setRomance(String romance) {
- //internal.setRomance(romance);
+ throw new NotSupportedException();
}
@Override
public String getScaredOf() {
- //return displayField(Field.SCARED_OF) ? internal.getScaredOf() : null;
- return null;
+ return getSingleValueFromProperties(Field.SCARED_OF);
}
@Override
public void setScaredOf(String scaredOf) {
- //internal.setScaredOf(scaredOf);
+ throw new NotSupportedException();
}
@Override
public String getSexualOrientation() {
- //return displayField(Field.SEXUAL_ORIENTATION) ? internal.getSexualOrientation() : null;
- return null;
+ return getSingleValueFromProperties(Field.SEXUAL_ORIENTATION);
}
@Override
public void setSexualOrientation(String sexualOrientation) {
- //internal.setSexualOrientation(sexualOrientation);
+ throw new NotSupportedException();
}
@Override
public Enum<Smoker> getSmoker() {
- //return displayField(Field.SMOKER) ? new EnumImpl<Smoker>(Smoker.valueOf(internal.getSmoker())) : null;
- return null;
+ String value = getSingleValueFromProperties(Field.SMOKER);
+ return value == null ? null : new EnumImpl<Smoker>(Smoker.valueOf(value));
}
@Override
public void setSmoker(Enum<Smoker> newSmoker) {
- //internal.setSmoker(newSmoker.getValue().toString());
+ throw new NotSupportedException();
}
@Override
@@ -609,7 +620,7 @@ public class FieldRestrictingPerson impl
@Override
public void setStatus(String status) {
- internal.setStatus(status);
+ throw new NotSupportedException();
}
@Override
@@ -624,13 +635,13 @@ public class FieldRestrictingPerson impl
@Override
public Long getUtcOffset() {
- //return displayField(Field.UTC_OFFSET) ? internal.getUtcOffset() : null;
- return null;
+ String value = getSingleValueFromProperties(Field.UTC_OFFSET);
+ return value == null ? null : Long.parseLong(value);
}
@Override
public void setUtcOffset(Long utcOffset) {
- //internal.setUtcOffset(utcOffset);
+ throw new NotSupportedException();
}
@Override
@@ -665,9 +676,12 @@ public class FieldRestrictingPerson impl
@Override
public List<Url> getUrls() {
- //TODO RAVE-178:Get URLs
- //return displayField(Field.URLS) ? internal.getUrls() : null;
- return null;
+ List<PersonProperty> properties = getFromProperties(Field.URLS);
+ List<Url> urls = new ArrayList<Url>();
+ for(PersonProperty property : properties) {
+ urls.add(convertToUrl(property));
+ }
+ return urls;
}
@Override
@@ -682,24 +696,22 @@ public class FieldRestrictingPerson impl
@Override
public String getProfileUrl() {
- //return displayField(Field.PROFILE_URL) ? internal.getProfileUrl() : null;
- return null;
+ return getSingleValueFromProperties(Field.PROFILE_URL);
}
@Override
public void setProfileUrl(String profileUrl) {
- //internal.setProfileUrl(profileUrl);
+ throw new NotSupportedException();
}
@Override
public String getThumbnailUrl() {
- //return displayField(Field.THUMBNAIL_URL) ? internal.getThumbnailUrl() : null;
- return null;
+ return getSingleValueFromProperties(Field.THUMBNAIL_URL);
}
@Override
public void setThumbnailUrl(String thumbnailUrl) {
- //internal.setThumbnailUrl(thumbnailUrl);
+ throw new NotSupportedException();
}
@Override
@@ -717,21 +729,37 @@ public class FieldRestrictingPerson impl
this.isViewer = isViewer;
}
+ private String getSingleValueFromProperties(Field field) {
+ List<String> values = getValuesFromProperties(field);
+ return CollectionUtils.getSingleValue(values);
+ }
+
private boolean displayField(Field field) {
- return fields == null || fields.isEmpty() || fields.contains(field.toString());
+ return fields != null && fields.contains(field.toString());
}
- private List<? extends ListField> getFromProperties(Field field) {
- //return internal.getProperties().get(field.toString());
- return null;
+ private List<PersonProperty> getFromProperties(Field field) {
+ return internal.getMappedProperties().containsKey(field.toString()) ?
+ internal.getMappedProperties().get(field.toString()) :
+ new ArrayList<PersonProperty>();
}
private List<String> getValuesFromProperties(Field field) {
- return displayField(field) ? toValueList(getFromProperties(field)) : null;
+ return displayField(field) ? toValueList(getFromProperties(field)) : new ArrayList<String>();
}
private List<ListField> getListFromProperties(Field field) {
- return displayField(field) ? CollectionUtils.<ListField>toBaseTypedList(getFromProperties(field)) : null;
+ return displayField(field) ? convertFromProperties(getFromProperties(field)) : new ArrayList<ListField>();
+ }
+
+ private static List<ListField> convertFromProperties(List<PersonProperty> properties) {
+ List<ListField> fieldList = new ArrayList<ListField>();
+ for(PersonProperty property: properties) {
+ ListField field = new ListFieldImpl(property.getQualifier(), property.getValue());
+ field.setPrimary(property.getPrimary());
+ fieldList.add(field);
+ }
+ return fieldList;
}
private static List<Enum<LookingFor>> getEnumsFromValues(List<String> values) {
@@ -744,11 +772,31 @@ public class FieldRestrictingPerson impl
return looking;
}
- private static List<String> toValueList(List<? extends ListField> properties) {
+ private static Date tryParseDate(String value) {
+ try {
+ return new SimpleDateFormat(ModelUtils.STANDARD_DATE_FORMAT).parse(value);
+ } catch (ParseException e) {
+ throw new IllegalStateException("Invalid Date found: " + value);
+ }
+ }
+
+ private static List<String> toValueList(List<PersonProperty> properties) {
List<String> values = new ArrayList<String>();
- for (ListField property : properties) {
+ for (PersonProperty property : properties) {
values.add(property.getValue());
}
return values;
}
+
+ private static Map<String, String> mapValuesByQualifier(List<PersonProperty> properties) {
+ Map<String, String> propertyMap = new HashMap<String, String>();
+ for(PersonProperty property : properties) {
+ propertyMap.put(property.getQualifier(), property.getValue());
+ }
+ return propertyMap;
+ }
+
+ private static Url convertToUrl(PersonProperty property) {
+ return new UrlImpl(property.getValue(), property.getExtendedValue(), property.getQualifier());
+ }
}
Added: incubator/rave/trunk/rave-shindig/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java?rev=1206966&view=auto
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java (added)
+++ incubator/rave/trunk/rave-shindig/src/test/java/org/apache/rave/opensocial/service/FieldRestrictingPersonTest.java Mon Nov 28 03:20:56 2011
@@ -0,0 +1,639 @@
+package org.apache.rave.opensocial.service;
+
+
+import org.apache.rave.exception.NotSupportedException;
+import org.apache.rave.opensocial.service.impl.FieldRestrictingPerson;
+import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.model.util.ModelUtils;
+import org.apache.shindig.protocol.model.EnumImpl;
+import org.apache.shindig.social.core.model.AddressImpl;
+import org.apache.shindig.social.core.model.BodyTypeImpl;
+import org.apache.shindig.social.core.model.UrlImpl;
+import org.apache.shindig.social.opensocial.model.*;
+import org.apache.shindig.social.opensocial.model.Address;
+import org.apache.shindig.social.opensocial.model.Person;
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+
+/**
+ */
+public class FieldRestrictingPersonTest {
+
+ private static final String USERNAME = "canonical";
+ private static final String ABOUT_ME = "About Me";
+ private static final String ADDITIONAL_NAME = "AdditionalName";
+ private static final String DISPLAY_NAME = "Display Name";
+ private static final String E_MAIL_ADDRESS = "E-mail address";
+ private static final String FIRST_NAME = "User";
+ private static final String GIVEN_NAME = "Canonical";
+ private static final String PREFIX = "Prefix";
+ private static final String SUFFIX = "Suffix";
+ private static final String PREFERRED_NAME = "PreferredName";
+ private static final String STATUS = "Status";
+ private static final Integer AGE = 24;
+ private static final String BIRTHDAY_STRING = "1997-07-16T19:20:30+0100";
+ private static final Date BIRTHDAY = parseDate(BIRTHDAY_STRING);
+ private static final String BODY_BUILD = "big";
+ private static final String BODY_EYE_COLOR = "red";
+ private static final String ACTIVITY_1 = "snowboarding";
+ private static final String ACTIVITY_2 = "baseball";
+ private static final String E_MAIL_ADDRESS_2 = "ihateyou@h8r.com";
+ private static final String E_MAIL_ADDRESS_3 = "boo@yahoo.com";
+ private static final String IM_PROVIDER_1 = "aol";
+ private static final String IM_PROVIDER_2 = "skype";
+ private static final String IM_1 = "aimname";
+ private static final String IM_2 = "skypename";
+ private static final String LINK_VALUE = "linkValue";
+ private static final String LINK_TEXT = "linkText";
+
+
+ @Test
+ public void getId() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), null);
+ assertThat(p.getId(), is(equalTo("1")));
+ }
+ @Test
+ public void getDisplayName() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), null);
+ assertThat(p.getDisplayName(), is(equalTo(DISPLAY_NAME)));
+ }
+ @Test
+ public void getUsername_null() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), null);
+ assertThat(p.getPreferredUsername(), is(nullValue()));
+ }
+ @Test
+ public void getUsername_empty() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), new HashSet<String>());
+ assertThat(p.getPreferredUsername(), is(nullValue()));
+ }
+ @Test
+ public void getUsername_valid() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.PREFERRED_USERNAME));
+ assertThat(p.getPreferredUsername(), is(equalTo(USERNAME)));
+ }
+
+ @Test
+ public void getAboutMe_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.ABOUT_ME));
+ assertThat(p.getAboutMe(), is(equalTo(ABOUT_ME)));
+ }
+
+ @Test
+ public void getAboutMe_notset() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.BIRTHDAY, Person.Field.ACTIVITIES));
+ assertThat(p.getAboutMe(), is(nullValue()));
+ }
+
+ @Test
+ public void getAge_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.AGE));
+ assertThat(p.getAge(), is(equalTo(AGE)));
+ }
+
+ @Test
+ public void getAge_notset() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.BIRTHDAY, Person.Field.ACTIVITIES));
+ assertThat(p.getAge(), is(nullValue()));
+ }
+
+ @Test
+ public void getBirthday_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.BIRTHDAY));
+ assertThat(p.getBirthday(), is(equalTo(BIRTHDAY)));
+ }
+
+ @Test
+ public void getBirthday_notset() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.AGE, Person.Field.ACTIVITIES));
+ assertThat(p.getBirthday(), is(nullValue()));
+ }
+
+ @Test
+ public void getActvities_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.ACTIVITIES));
+ List<String> activities = p.getActivities();
+ assertThat(activities.size(), is(equalTo(2)));
+ assertThat(activities.contains(ACTIVITY_1), is(true));
+ assertThat(activities.contains(ACTIVITY_2), is(true));
+ }
+
+ @Test
+ public void getActivities_notset() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.AGE, Person.Field.BOOKS));
+ assertThat(p.getActivities().isEmpty(), is(true));
+ }
+ @Test
+ public void getBooks_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.BOOKS, Person.Field.ACTIVITIES));
+ assertThat(p.getBooks().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getCars_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.CARS, Person.Field.ACTIVITIES));
+ assertThat(p.getCars().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getBodyType_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.BODY_TYPE));
+ assertThat(p.getBodyType().getBuild(), is(equalTo(BODY_BUILD)));
+ assertThat(p.getBodyType().getEyeColor(), is(equalTo(BODY_EYE_COLOR)));
+ }
+
+ @Test
+ public void getBodyType_notset() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.AGE, Person.Field.ACTIVITIES));
+ assertThat(p.getBodyType(), is(nullValue()));
+ }
+
+ @Test
+ public void getChildren_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.ABOUT_ME));
+ assertThat(p.getChildren(), is(nullValue()));
+ }
+
+ @Test
+ public void getDrinker_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.DRINKER));
+ assertThat(p.getDrinker().getValue(), is(equalTo(Drinker.HEAVILY)));
+ }
+
+ @Test
+ public void getDrinker_notset() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.ABOUT_ME));
+ assertThat(p.getDrinker(), is(nullValue()));
+ }
+
+ @Test
+ public void getEmails_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.EMAILS));
+ assertThat(p.getEmails().size(), is(equalTo(3)));
+ int primaryCount = 0;
+ for(ListField field : p.getEmails()) {
+ assertThat(isValidEmailField(field), is(true));
+ primaryCount += field.getPrimary() != null && field.getPrimary() ? 1 : 0;
+ }
+ assertThat(primaryCount, is(equalTo(1)));
+ }
+
+ @Test
+ public void getEthnicity_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.ETHNICITY, Person.Field.ACTIVITIES));
+ assertThat(p.getEthnicity(), is(nullValue()));
+ }
+
+ @Test
+ public void getFashion_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.FASHION, Person.Field.ACTIVITIES));
+ assertThat(p.getFashion(), is(nullValue()));
+ }
+
+ @Test
+ public void getFood_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.FOOD, Person.Field.ACTIVITIES));
+ assertThat(p.getFood().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getGender_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.GENDER));
+ assertThat(p.getGender(), is(equalTo(Person.Gender.female)));
+ }
+
+ @Test
+ public void getHappiestWhen_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.HAPPIEST_WHEN));
+ assertThat(p.getHappiestWhen(), is(nullValue()));
+ }
+
+ @Test
+ public void getHumor_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.HUMOR));
+ assertThat(p.getHumor(), is(nullValue()));
+ }
+
+ @Test
+ public void getGender_null() {
+ org.apache.rave.portal.model.Person testPerson = getTestPerson();
+ testPerson.setProperties(new ArrayList<PersonProperty>());
+ Person p = new FieldRestrictingPerson(testPerson, getFieldSet(Person.Field.GENDER));
+ assertThat(p.getGender(), is(nullValue()));
+ }
+
+ @Test
+ public void getIms_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.IMS));
+ assertThat(p.getIms().size(), is(equalTo(2)));
+ for(ListField field : p.getIms()) {
+ if(IM_PROVIDER_1.equals(field.getType())) {
+ assertThat(field.getValue(), is(equalTo(IM_1)));
+ } else if(IM_PROVIDER_2.equals(field.getType())) {
+ assertThat(field.getValue(), is(equalTo(IM_2)));
+ } else {
+ fail();
+ }
+ }
+ }
+
+ @Test
+ public void getInterests_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.INTERESTS));
+ assertThat(p.getInterests().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getJobInterests_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.JOB_INTERESTS));
+ assertThat(p.getJobInterests(), is(nullValue()));
+ }
+
+ @Test
+ public void getLanguagesSpoken_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.LANGUAGES_SPOKEN));
+ assertThat(p.getLanguagesSpoken().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getUpdated_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.LAST_UPDATED));
+ assertThat(p.getUpdated(), is(nullValue()));
+ }
+
+ @Test
+ public void getLivingArrangement_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.LIVING_ARRANGEMENT));
+ assertThat(p.getLivingArrangement(), is(nullValue()));
+ }
+
+ @Test
+ public void getLookingFor_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.LOOKING_FOR));
+ assertThat(p.getLookingFor().size(), is(equalTo(1)));
+ }
+
+ @Test
+ public void getMovies_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.MOVIES));
+ assertThat(p.getMovies().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getMusic_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.MUSIC));
+ assertThat(p.getMusic().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getNetworkPresence_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.NETWORKPRESENCE));
+ assertThat(p.getNetworkPresence(), is(nullValue()));
+ }
+
+ @Test
+ public void getNickname_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.NICKNAME));
+ assertThat(p.getNickname(), is(equalTo(PREFERRED_NAME)));
+ }
+
+ @Test
+ public void getPets_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.PETS));
+ assertThat(p.getPets(), is(nullValue()));
+ }
+
+ @Test
+ public void getPhoneNumbers_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.PHONE_NUMBERS));
+ assertThat(p.getPhoneNumbers().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getPhotos_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.PHOTOS));
+ assertThat(p.getPhotos().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getPoliticalViews_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.POLITICAL_VIEWS));
+ assertThat(p.getPoliticalViews(), is(nullValue()));
+ }
+
+ @Test
+ public void getProfileSong_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.PROFILE_SONG));
+ assertThat(p.getProfileSong().getValue(), is(equalTo(LINK_VALUE)));
+ assertThat(p.getProfileSong().getLinkText(), is(equalTo(LINK_TEXT)));
+ }
+
+ @Test
+ public void getProfileVideo_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.PROFILE_VIDEO));
+ assertThat(p.getProfileVideo(), is(nullValue()));
+ }
+
+ @Test
+ public void getQuotes_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.QUOTES));
+ assertThat(p.getQuotes().isEmpty(), is(true));
+ }
+
+ @Test
+ public void getRelationshipStatus_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.RELATIONSHIP_STATUS));
+ assertThat(p.getRelationshipStatus(), is(nullValue()));
+ }
+
+ @Test
+ public void getStatus_set() {
+ Person p = new FieldRestrictingPerson(getTestPerson(), getFieldSet(Person.Field.STATUS));
+ assertThat(p.getStatus(), is(equalTo(STATUS)));
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setStatus() {
+ new FieldRestrictingPerson(null, null).setStatus(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setRelationshipStatus() {
+ new FieldRestrictingPerson(null, null).setRelationshipStatus(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setQuotes() {
+ new FieldRestrictingPerson(null, null).setQuotes(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setProfileVideo() {
+ new FieldRestrictingPerson(null, null).setProfileVideo(new UrlImpl());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setProfileSong() {
+ new FieldRestrictingPerson(null, null).setProfileSong(new UrlImpl());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setPoliticalViews() {
+ new FieldRestrictingPerson(null, null).setPoliticalViews(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setPhotos() {
+ new FieldRestrictingPerson(null, null).setPhotos(new ArrayList<ListField>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setPhoneNumbers() {
+ new FieldRestrictingPerson(null, null).setPhoneNumbers(new ArrayList<ListField>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setPets() {
+ new FieldRestrictingPerson(null, null).setPets(PREFERRED_NAME);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setNickname() {
+ new FieldRestrictingPerson(null, null).setNickname(PREFERRED_NAME);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setNetworkPresence() {
+ new FieldRestrictingPerson(null, null).setNetworkPresence(new EnumImpl<NetworkPresence>(NetworkPresence.AWAY));
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setMusic() {
+ new FieldRestrictingPerson(null, null).setMusic(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setMovies() {
+ new FieldRestrictingPerson(null, null).setMovies(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setLookingFor() {
+ new FieldRestrictingPerson(null, null).setLookingFor(new ArrayList<org.apache.shindig.protocol.model.Enum<LookingFor>>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setLivingArrangement() {
+ new FieldRestrictingPerson(null, null).setLivingArrangement(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setUpdated() {
+ new FieldRestrictingPerson(null, null).setUpdated(new Date());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setLanguagesSpoken() {
+ new FieldRestrictingPerson(null, null).setLanguagesSpoken(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setJobInterests() {
+ new FieldRestrictingPerson(null, null).setJobInterests(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setInterests() {
+ new FieldRestrictingPerson(null, null).setInterests(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setIms() {
+ new FieldRestrictingPerson(null, null).setIms(new ArrayList<ListField>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setHumor() {
+ new FieldRestrictingPerson(null, null).setHumor(DISPLAY_NAME);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setDisplayName() {
+ new FieldRestrictingPerson(null, null).setDisplayName(DISPLAY_NAME);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setAboutMe() {
+ new FieldRestrictingPerson(null, null).setAboutMe(DISPLAY_NAME);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setActivities() {
+ new FieldRestrictingPerson(null, null).setActivities(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setAge() {
+ new FieldRestrictingPerson(null, null).setAge(AGE);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setAccounts() {
+ new FieldRestrictingPerson(null, null).setAccounts(new ArrayList<Account>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setAddresses() {
+ new FieldRestrictingPerson(null, null).setAddresses(new ArrayList<Address>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setBirthday() {
+ new FieldRestrictingPerson(null, null).setBirthday(new Date());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setBodyType() {
+ new FieldRestrictingPerson(null, null).setBodyType(new BodyTypeImpl());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setBooks() {
+ new FieldRestrictingPerson(null, null).setBooks(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setCars() {
+ new FieldRestrictingPerson(null, null).setCars(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setChildren() {
+ new FieldRestrictingPerson(null, null).setChildren(DISPLAY_NAME);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setCurrentLocation() {
+ new FieldRestrictingPerson(null, null).setCurrentLocation(new AddressImpl());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setDrinker() {
+ new FieldRestrictingPerson(null, null).setDrinker(new EnumImpl<Drinker>(Drinker.QUIT));
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setEthnicity() {
+ new FieldRestrictingPerson(null, null).setEthnicity(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setFashion() {
+ new FieldRestrictingPerson(null, null).setFashion(SUFFIX);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setFood() {
+ new FieldRestrictingPerson(null, null).setFood(new ArrayList<String>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setEmails() {
+ new FieldRestrictingPerson(null, null).setEmails(new ArrayList<ListField>());
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setGender() {
+ new FieldRestrictingPerson(null, null).setGender(Person.Gender.male);
+ }
+
+ @Test(expected = NotSupportedException.class)
+ public void setHappiestWhen() {
+ new FieldRestrictingPerson(null, null).setHappiestWhen(SUFFIX);
+ }
+
+ private org.apache.rave.portal.model.Person getTestPerson() {
+ org.apache.rave.portal.model.Person person = new PropertyMappingPerson();
+ person.setEntityId(1L);
+ person.setUsername(USERNAME);
+ person.setAboutMe(ABOUT_ME);
+ person.setAdditionalName(ADDITIONAL_NAME);
+ person.setDisplayName(DISPLAY_NAME);
+ person.setEmail(E_MAIL_ADDRESS);
+ person.setFamilyName(FIRST_NAME);
+ person.setGivenName(GIVEN_NAME);
+ person.setHonorificPrefix(PREFIX);
+ person.setHonorificSuffix(SUFFIX);
+ person.setPreferredName(PREFERRED_NAME);
+ person.setStatus(STATUS);
+ person.setAddresses(null);
+ List<PersonProperty> properties = new ArrayList<PersonProperty>();
+ properties.add(new PersonProperty(1L, "gender", Person.Gender.female.toString(), null, "", false));
+ properties.add(new PersonProperty(1L, "drinker", Drinker.HEAVILY.toString(), null, "", false));
+ properties.add(new PersonProperty(1L, "age", AGE.toString(), null, "", false));
+ properties.add(new PersonProperty(1L, "birthday", BIRTHDAY_STRING, null, "", false));
+ properties.add(new PersonProperty(1L, "bodyType", BODY_BUILD, null, "build", false));
+ properties.add(new PersonProperty(1L, "bodyType", BODY_EYE_COLOR, null, "eyeColor", false));
+ properties.add(new PersonProperty(1L, "bodyType", "25.24", null, "height", false));
+ properties.add(new PersonProperty(1L, "ims", IM_1, null, IM_PROVIDER_1, true));
+ properties.add(new PersonProperty(1L, "ims", IM_2, null, IM_PROVIDER_2, false));
+ properties.add(new PersonProperty(1L, "emails", E_MAIL_ADDRESS_2, null, "personal", false));
+ properties.add(new PersonProperty(1L, "emails", E_MAIL_ADDRESS_3, null, "junk", true));
+ properties.add(new PersonProperty(1L, "activities", ACTIVITY_1, null, "", false));
+ properties.add(new PersonProperty(1L, "activities", ACTIVITY_2, null, "", false));
+ properties.add(new PersonProperty(1L, "profileSong", LINK_VALUE, LINK_TEXT, null, false));
+ properties.add(new PersonProperty(1L, "lookingFor", LookingFor.FRIENDS.toString(), null, null, false));
+ person.setProperties(properties);
+ return person;
+ }
+
+ private Set<String> getFieldSet(Person.Field... fields) {
+ Set<String> set = new HashSet<String>();
+ for(Person.Field field : fields) {
+ set.add(field.toString());
+ }
+ return set;
+ }
+
+ private static Date parseDate(String birthdayString) {
+ try {
+ return new SimpleDateFormat(ModelUtils.STANDARD_DATE_FORMAT).parse(birthdayString);
+ } catch (ParseException e) {
+ throw new RuntimeException("Parse Exception...",e);
+ }
+ }
+
+ private Boolean isValidEmailField(ListField field) {
+ boolean valid;
+ if(E_MAIL_ADDRESS.equals(field.getValue())) {
+ valid = "Registered".equals(field.getType());
+ valid &= field.getPrimary();
+ } else if(E_MAIL_ADDRESS_2.equals(field.getValue())) {
+ valid = "personal".equals(field.getType());
+ valid &= !field.getPrimary();
+ } else if(E_MAIL_ADDRESS_3.equals(field.getValue())) {
+ valid = "junk".equals(field.getType());
+ valid &= !field.getPrimary();
+ } else {
+ valid = false;
+ }
+ return valid;
+ }
+
+ private static class PropertyMappingPerson extends org.apache.rave.portal.model.Person {
+ @Override
+ public void setProperties(List<PersonProperty> properties) {
+ super.setProperties(properties);
+ super.setMappedProperties(createPropertyMap(properties));
+ }
+ }
+}