You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ja...@apache.org on 2011/07/20 15:02:56 UTC

svn commit: r1148748 - in /incubator/rave/trunk/rave-shindig/src: main/java/org/apache/shindig/social/opensocial/jpa/spi/ main/resources/META-INF/ test/java/org/apache/shindig/social/opensocial/jpa/spi/ test/resources/META-INF/

Author: jasha
Date: Wed Jul 20 13:02:55 2011
New Revision: 1148748

URL: http://svn.apache.org/viewvc?rev=1148748&view=rev
Log:
RAVE-62 add simple test for getPerson

Modified:
    incubator/rave/trunk/rave-shindig/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java
    incubator/rave/trunk/rave-shindig/src/main/resources/META-INF/persistence.xml
    incubator/rave/trunk/rave-shindig/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDbTest.java
    incubator/rave/trunk/rave-shindig/src/test/resources/META-INF/persistence.xml

Modified: incubator/rave/trunk/rave-shindig/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java?rev=1148748&r1=1148747&r2=1148748&view=diff
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java (original)
+++ incubator/rave/trunk/rave-shindig/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java Wed Jul 20 13:02:55 2011
@@ -56,13 +56,17 @@ public class PersonServiceDb implements 
    */
   private EntityManager entityManager;
 
+  private ShindigUtil shindigUtil = new ShindigUtil();
+  private BeanConverter beanConverter = shindigUtil.getBeanConverter();
+
+
   /**
    * Create the PersonServiceDb, injecting an entity manager that is configured with the social
    * model.
    *
    * @param entityManager the entity manager containing the social model.
    */
-//  @Inject
+  //@Inject
   public PersonServiceDb(EntityManager entityManager) {
     this.entityManager = entityManager;
   }
@@ -160,9 +164,6 @@ public class PersonServiceDb implements 
 
   }
   
-  private ShindigUtil shindigUtil = new ShindigUtil();
-  private BeanConverter beanConverter = shindigUtil.getBeanConverter();
-  
   /**
    * {@inheritDoc}
    */
@@ -182,8 +183,9 @@ public class PersonServiceDb implements 
         String jsonStrRep = beanConverter.convertToString(person);
         JSONObject jsonRep = new JSONObject(jsonStrRep);
         if (!fields.isEmpty()) {
-            if (fields.size() != 1 || !fields.contains("id"))
+            if (fields.size() != 1 || !fields.contains("id")) {
                 jsonRep = new JSONObject(jsonRep, fields.toArray(new String[fields.size()]));
+            }
         }
         person = beanConverter.convertToObject(jsonRep.toString(), Person.class);
         return ImmediateFuture.newInstance(person);
@@ -300,4 +302,16 @@ public class PersonServiceDb implements 
           }
       }
   }
+
+    /**
+     * Persists a {@link PersonDb} in the database
+     *
+     * @param person {@link PersonDb}
+     */
+    public void savePersonDb(PersonDb person) {
+        entityManager.getTransaction().begin();
+        entityManager.persist(person);
+        entityManager.flush();
+        entityManager.getTransaction().commit();
+    }
 }

Modified: incubator/rave/trunk/rave-shindig/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/main/resources/META-INF/persistence.xml?rev=1148748&r1=1148747&r2=1148748&view=diff
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/main/resources/META-INF/persistence.xml (original)
+++ incubator/rave/trunk/rave-shindig/src/main/resources/META-INF/persistence.xml Wed Jul 20 13:02:55 2011
@@ -25,6 +25,7 @@
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
     <class>org.apache.shindig.gadgets.oauth.model.OAuthConsumerStoreDb</class>
     <class>org.apache.shindig.gadgets.oauth.model.OAuthTokenInfoDb</class>
+    <class>org.apache.shindig.social.opensocial.jpa.PersonDb</class>
     <properties>
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
       <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />

Modified: incubator/rave/trunk/rave-shindig/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDbTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDbTest.java?rev=1148748&r1=1148747&r2=1148748&view=diff
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDbTest.java (original)
+++ incubator/rave/trunk/rave-shindig/src/test/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDbTest.java Wed Jul 20 13:02:55 2011
@@ -19,12 +19,30 @@
 
 package org.apache.shindig.social.opensocial.jpa.spi;
 
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.concurrent.Future;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import org.apache.rave.os.model.RaveNameImpl;
+import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.common.testing.FakeGadgetToken;
 import org.apache.shindig.protocol.model.FilterOperation;
 import org.apache.shindig.protocol.model.SortOrder;
+import org.apache.shindig.social.opensocial.jpa.EnumDb;
+import org.apache.shindig.social.opensocial.jpa.PersonDb;
 import org.apache.shindig.social.opensocial.jpa.api.FilterCapability;
 import org.apache.shindig.social.opensocial.jpa.api.FilterSpecification;
+import org.apache.shindig.social.opensocial.jpa.openjpa.OpenJPADbModule;
+import org.apache.shindig.social.opensocial.model.Drinker;
+import org.apache.shindig.social.opensocial.model.Name;
+import org.apache.shindig.social.opensocial.model.NetworkPresence;
+import org.apache.shindig.social.opensocial.model.Person;
+import org.apache.shindig.social.opensocial.model.Smoker;
 import org.apache.shindig.social.opensocial.spi.CollectionOptions;
 import org.apache.shindig.social.opensocial.spi.PersonService;
+import org.apache.shindig.social.opensocial.spi.UserId;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -44,7 +62,22 @@ public class PersonServiceDbTest {
 
     @Before
     public void setUp() throws Exception {
-        service = new PersonServiceDb();
+        Injector injector = Guice.createInjector(new OpenJPADbModule());
+        service = injector.getInstance(PersonServiceDb.class);
+        PersonDb person = createPerson();
+        service.savePersonDb(person);
+    }
+
+
+    @Test
+    public void testGetPerson() throws Exception {
+        UserId userId = new UserId(UserId.Type.userId, "canonical");
+        SecurityToken token = new FakeGadgetToken();
+        final Future<Person> personFuture = service.getPerson(userId, Collections.<String>emptySet(), token);
+        final Person person = personFuture.get();
+        assertEquals("canonical", person.getId());
+        assertEquals(25, person.getAge().intValue());
+        assertEquals(Smoker.NO, person.getSmoker().getValue());
     }
 
     /**
@@ -151,6 +184,26 @@ public class PersonServiceDbTest {
         sb = new StringBuilder();
         service.addOrderClause(sb, co);
         assertEquals(" order by p.randomProperty", sb.toString());
+    }
 
+    private PersonDb createPerson() {
+        PersonDb person = new PersonDb();
+        person.setId("canonical");
+        Name name = new RaveNameImpl();
+        name.setFamilyName("Anonical");
+        name.setGivenName("Carl");
+        person.setName(name);
+        person.setDrinker(new EnumDb<Drinker>(Drinker.NO));
+        person.setGender(Person.Gender.male);
+        person.setNetworkPresence(new EnumDb<NetworkPresence>(NetworkPresence.ONLINE));
+        person.setAboutMe("About me");
+        person.setAge(25);
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(1997, Calendar.SEPTEMBER, 12);
+        person.setBirthday(calendar.getTime());
+        person.setNickname("hoosier");
+        person.setSmoker(new EnumDb<Smoker>(Smoker.NO));
+        return person;
     }
+
 }

Modified: incubator/rave/trunk/rave-shindig/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-shindig/src/test/resources/META-INF/persistence.xml?rev=1148748&r1=1148747&r2=1148748&view=diff
==============================================================================
--- incubator/rave/trunk/rave-shindig/src/test/resources/META-INF/persistence.xml (original)
+++ incubator/rave/trunk/rave-shindig/src/test/resources/META-INF/persistence.xml Wed Jul 20 13:02:55 2011
@@ -26,6 +26,7 @@
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
     <class>org.apache.shindig.gadgets.oauth.model.OAuthConsumerStoreDb</class>
     <class>org.apache.shindig.gadgets.oauth.model.OAuthTokenInfoDb</class>
+    <class>org.apache.shindig.social.opensocial.jpa.PersonDb</class>
     <properties>
       <property name="openjpa.RuntimeUnenhancedClasses" value="supported"/>
       <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>