Added: 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/util/ActivityConversionUtil.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/util/ActivityConversionUtil.java?rev=1440223&view=auto
==============================================================================
--- 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/util/ActivityConversionUtil.java
 (added)
+++ 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/main/java/org/apache/rave/util/ActivityConversionUtil.java
 Tue Jan 29 23:55:08 2013
@@ -0,0 +1,194 @@
+package org.apache.rave.util;
+
+import com.google.common.collect.Lists;
+import org.apache.rave.portal.model.ActivityStreamsItem;
+import org.apache.rave.portal.model.impl.ActivityStreamsMediaLinkImpl;
+import org.apache.rave.portal.model.impl.ActivityStreamsObjectImpl;
+import org.apache.shindig.protocol.model.ExtendableBean;
+import org.apache.shindig.protocol.model.ExtendableBeanImpl;
+import org.apache.shindig.social.core.model.ActivityEntryImpl;
+import org.apache.shindig.social.core.model.ActivityObjectImpl;
+import org.apache.shindig.social.core.model.MediaLinkImpl;
+import org.apache.shindig.social.opensocial.model.ActivityEntry;
+import org.apache.shindig.social.opensocial.model.ActivityObject;
+import org.apache.shindig.social.opensocial.model.MediaLink;
+import org.apache.rave.portal.model.impl.ActivityStreamsEntryImpl;
+import org.apache.rave.portal.model.ActivityStreamsEntry;
+import org.apache.rave.portal.model.ActivityStreamsObject;
+import org.apache.rave.portal.model.ActivityStreamsMediaLink;
+import org.apache.rave.portal.util.ModelUtil;
+
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+
+import static org.apache.rave.portal.util.ModelUtil.dateToString;
+
+
+public class ActivityConversionUtil {
+
+    public List<ActivityEntry> convert(Collection<? extends 
ActivityStreamsEntry> all) {
+        if(all == null) {
+            return null;
+        }
+        List<ActivityEntry> list = Lists.newArrayList();
+        for (ActivityStreamsEntry entry : all) {
+            list.add(convert(entry));
+        }
+        return list;
+    }
+
+    public List<ActivityStreamsObject> 
convertObjectEntries(Collection<ActivityObject> all) {
+        if(all == null) {
+            return null;
+        }
+        List<ActivityStreamsObject> list = Lists.newArrayList();
+        for (ActivityObject entry : all) {
+            list.add(convert(entry));
+        }
+        return list;
+    }
+
+    public ActivityEntryImpl convert(ActivityStreamsEntry saved) {
+        if(saved == null) {
+            return null;
+        }
+        ActivityEntryImpl impl = new ActivityEntryImpl();
+        impl.setActor(convert(saved.getActor()));
+        impl.setContent(saved.getContent());
+        impl.setExtensions(convert(saved.getExtensions()));
+        impl.setGenerator(convert(saved.getGenerator()));
+        impl.setIcon(convert(saved.getIcon()));
+        impl.setId(saved.getId());
+        impl.setObject(convert(saved.getObject()));
+        impl.setOpenSocial(convert(saved.getOpenSocial()));
+        impl.setProvider(convert(saved.getProvider()));
+        impl.setPublished(dateToString(saved.getPublished()));
+        impl.setTarget(convert(saved.getTarget()));
+        impl.setUpdated(dateToString(saved.getUpdated()));
+        impl.setTitle(saved.getTitle());
+        impl.setUrl(saved.getUrl());
+        impl.setVerb(saved.getVerb());
+        return impl;
+    }
+
+    public ActivityObject convert(ActivityStreamsObject object) {
+        if(object == null) {
+            return null;
+        }
+        ActivityObjectImpl impl = new ActivityObjectImpl();
+        impl.setAttachments(convert(object.getAttachments()));
+        impl.setAuthor(convert(object.getAuthor()));
+        impl.setContent(object.getContent());
+        impl.setDisplayName(object.getDisplayName());
+        impl.setDownstreamDuplicates(object.getDownstreamDuplicates());
+        impl.setId(object.getId());
+        impl.setImage(convert(object.getImage()));
+        impl.setObjectType(object.getObjectType());
+        impl.setPublished(dateToString(object.getPublished()));
+        impl.setSummary(object.getSummary());
+        impl.setUpdated(dateToString(object.getUpdated()));
+        impl.setUpstreamDuplicates(object.getUpstreamDuplicates());
+        impl.setUrl(object.getUrl());
+        impl.setOpenSocial(convert(object.getOpenSocial()));
+        return impl;
+    }
+
+    public ActivityObject convert(ActivityStreamsItem object) {
+        if (object instanceof ActivityStreamsObject){
+            return convert((ActivityStreamsObject)object);
+        }
+        return null;
+
+    }
+
+    public List<ActivityObject> convert(List<? extends ActivityStreamsObject> 
attachments) {
+        if(attachments == null) {
+            return null;
+        }
+        List<ActivityObject> list = Lists.newArrayList();
+        for (ActivityStreamsObject entity : attachments) {
+            list.add(convert(entity));
+        }
+        return list;
+    }
+
+    public ActivityStreamsEntryImpl convert(ActivityEntry activity){
+        ActivityStreamsEntryImpl entity = new ActivityStreamsEntryImpl();
+        if 
(activity.getActor()!=null){entity.setActor(convert(activity.getActor()));  }
+        if 
(activity.getContent()!=null){entity.setContent(activity.getContent());}
+        if 
(activity.getGenerator()!=null){entity.setGenerator(convert(activity.getGenerator()));
  }
+        if (activity.getIcon()!=null){ 
entity.setIcon(convert(activity.getIcon()));  }
+        if (activity.getId()!=null){entity.setId(activity.getId());  }
+        if 
(activity.getObject()!=null){entity.setObject(convert(activity.getObject())); }
+        if 
(activity.getPublished()!=null){entity.setPublished(ModelUtil.stringToDate(activity.getPublished()));
 }
+        if (activity.getProvider()!=null){ 
entity.setProvider(convert(activity.getProvider()));  }
+        if 
(activity.getTarget()!=null){entity.setTarget(convert(activity.getTarget())); }
+        if (activity.getTitle()!=null){ entity.setTitle(activity.getTitle());  
 }
+        if 
(activity.getUpdated()!=null){entity.setUpdated(ModelUtil.stringToDate(activity.getUpdated()));}
+        if (activity.getUrl()!=null){entity.setUrl(activity.getUrl());}
+        if (activity.getVerb()!=null){entity.setVerb(activity.getVerb());  }
+        if 
(activity.getOpenSocial()!=null){entity.setOpenSocial(convert(activity.getOpenSocial()));
  }
+        if 
(activity.getExtensions()!=null){entity.setExtensions(convert(activity.getExtensions()));
 }
+        return entity;
+    }
+
+    public ActivityStreamsObject convert(ActivityObject object){
+        ActivityStreamsObject entity = new ActivityStreamsObjectImpl();
+
+        if 
(object.getAuthor()!=null){entity.setAuthor(convert(object.getAuthor()));}
+        if 
(object.getAttachments()!=null){entity.setAttachments(convertObjectEntries(object.getAttachments()));}
+        if (object.getContent()!=null){ 
entity.setContent(object.getContent());}
+        if (object.getDisplayName()!=null){ 
entity.setDisplayName(object.getDisplayName());}
+        if 
(object.getDownstreamDuplicates()!=null){entity.setDownstreamDuplicates(object.getDownstreamDuplicates());}
+        if (object.getId()!=null){ entity.setId(object.getId());   }
+        if 
(object.getImage()!=null){entity.setImage(convert(object.getImage()));}
+        if 
(object.getObjectType()!=null){entity.setObjectType(object.getObjectType());  }
+        if 
(object.getPublished()!=null){entity.setPublished(ModelUtil.stringToDate(object.getPublished()));
   }
+        if (object.getSummary()!=null){entity.setSummary(object.getSummary()); 
 }
+        if 
(object.getUpdated()!=null){entity.setUpdated(ModelUtil.stringToDate(object.getUpdated()));
   }
+        if 
(object.getUpstreamDuplicates()!=null){entity.setUpstreamDuplicates(object.getUpstreamDuplicates());
 }
+        if (object.getUrl()!=null){entity.setUrl(object.getUrl());  }
+        if 
(object.getOpenSocial()!=null){entity.setOpenSocial(convert(object.getOpenSocial()));
  }
+        return entity;
+
+    }
+
+    public ActivityStreamsMediaLink convert (MediaLink icon) {
+        if(icon == null) return null;
+        ActivityStreamsMediaLink entity = new ActivityStreamsMediaLinkImpl();
+        entity.setDuration(icon.getDuration());
+        entity.setHeight(icon.getHeight());
+        entity.setOpenSocial(convert(icon.getOpenSocial()));
+        entity.setUrl(icon.getUrl());
+        entity.setWidth(icon.getWidth());
+        return entity;
+    }
+
+    public MediaLink convert (ActivityStreamsMediaLink icon) {
+        if(icon == null) return null;
+        MediaLinkImpl entity = new MediaLinkImpl();
+        entity.setDuration(icon.getDuration());
+        entity.setHeight(icon.getHeight());
+        entity.setOpenSocial(convert(icon.getOpenSocial()));
+        entity.setUrl(icon.getUrl());
+        entity.setWidth(icon.getWidth());
+        return entity;
+    }
+
+    public HashMap convert (ExtendableBean bean) {
+        if(bean == null) return null;
+        HashMap entity = new HashMap();
+        bean.putAll(entity);
+        return entity;
+    }
+
+    public ExtendableBean convert(HashMap map){
+        if(map == null) return null;
+        ExtendableBean bean = new ExtendableBeanImpl();
+        map.putAll(bean);
+        return bean;
+    }
+
+}

Added: 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/DefaultActivityStreamsServiceTest.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/DefaultActivityStreamsServiceTest.java?rev=1440223&view=auto
==============================================================================
--- 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/DefaultActivityStreamsServiceTest.java
 (added)
+++ 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/service/DefaultActivityStreamsServiceTest.java
 Tue Jan 29 23:55:08 2013
@@ -0,0 +1,276 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.opensocial.service;
+
+import com.google.common.collect.Lists;
+import org.apache.rave.opensocial.service.impl.DefaultActivityStreamsService;
+import org.apache.rave.portal.model.impl.ActivityStreamsEntryImpl;
+import org.apache.rave.portal.model.impl.ActivityStreamsMediaLinkImpl;
+import org.apache.rave.portal.model.impl.ActivityStreamsObjectImpl;
+import org.apache.rave.portal.repository.ActivityStreamsRepository;
+import org.apache.rave.util.ActivityConversionUtil;
+import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.common.util.ImmediateFuture;
+import org.apache.shindig.protocol.RestfulCollection;
+import org.apache.shindig.social.core.model.ActivityObjectImpl;
+import org.apache.shindig.social.core.model.PersonImpl;
+import org.apache.shindig.social.opensocial.model.ActivityEntry;
+import org.apache.shindig.social.opensocial.model.Person;
+import org.apache.shindig.social.opensocial.spi.GroupId;
+import org.apache.shindig.social.opensocial.spi.PersonService;
+import org.apache.shindig.social.opensocial.spi.UserId;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.*;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.logging.Logger;
+
+import static org.easymock.EasyMock.*;
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+
+
+public class DefaultActivityStreamsServiceTest {
+
+    private static Logger log = 
Logger.getLogger(DefaultActivityStreamsServiceTest.class.getName());
+
+
+    private ActivityStreamsRepository repository;
+    private PersonService personService;
+    private SecurityToken token;
+    private DefaultActivityStreamsService service;
+    private ActivityStreamsEntryImpl activityStreamsEntry;
+    private Collection<? extends ActivityStreamsEntryImpl> 
activityStreamsEntries;
+    private ActivityStreamsObjectImpl activityStreamsObject;
+    private ActivityStreamsObjectImpl authorObject;
+    private ActivityConversionUtil conversionUtilTest ;
+    private static final String ID_1 = "1234";
+    private static final String ID_2 = "1235";
+    private static final String APP_ID = "testing";
+    private static final String GROUP_ID = "self";
+    private static final String ACTIVITY_TITLE = "Activity Title";
+    private static final String ACTIVITY_ID = "Activity ID";
+
+
+    @Before
+    public void setup() {
+
+        token = createNiceMock(SecurityToken.class);
+        repository = createNiceMock(ActivityStreamsRepository.class);
+        personService =createNiceMock(PersonService.class);
+        service = new DefaultActivityStreamsService(repository,personService);
+
+        conversionUtilTest=new ActivityConversionUtil();
+
+        activityStreamsEntry = new ActivityStreamsEntryImpl();
+        activityStreamsObject = new ActivityStreamsObjectImpl();
+        authorObject = new ActivityStreamsObjectImpl();
+        authorObject.setDisplayName("Test Author");
+        activityStreamsObject.setAuthor(authorObject);
+        activityStreamsObject.setDisplayName("Test Streams Object");
+        activityStreamsObject.setPublished(new Date());
+        activityStreamsObject.setId("Test ID");
+        activityStreamsEntry.setUserId(ID_1);
+        activityStreamsEntry.setActor(activityStreamsObject);
+        activityStreamsEntry.setContent("Activity Content");
+        activityStreamsEntry.setGenerator(new ActivityStreamsObjectImpl());
+        activityStreamsEntry.setIcon(new ActivityStreamsMediaLinkImpl());
+        activityStreamsEntry.setId(ACTIVITY_ID);
+        activityStreamsEntry.setObject(activityStreamsObject);
+        activityStreamsEntry.setPublished(new Date());
+        activityStreamsEntry.setProvider(new ActivityStreamsObjectImpl());
+        activityStreamsEntry.setTarget(new ActivityStreamsObjectImpl());
+        activityStreamsEntry.setTitle(ACTIVITY_TITLE);
+        activityStreamsEntry.setUpdated(new Date());
+        activityStreamsEntry.setUrl("Activity URL");
+        activityStreamsEntry.setVerb("Activity Verb");
+        activityStreamsEntry.setOpenSocial(new ActivityObjectImpl());
+
+        activityStreamsEntries = Lists.asList(activityStreamsEntry,new 
ActivityStreamsEntryImpl[]{});
+
+    }
+
+    @Test
+    public void createActivityEntryTest() throws ExecutionException, 
InterruptedException {
+
+        UserId id = new UserId(UserId.Type.userId, ID_1);
+        GroupId groupId = new GroupId(GroupId.Type.self, GROUP_ID);
+        Set<String> fields = new HashSet<String>();
+
+        expect(token.getViewerId()).andReturn(ID_1);
+        
expect(repository.save(activityStreamsEntry)).andReturn(activityStreamsEntry);
+        replay(repository);
+        replay(token);
+
+        Future<ActivityEntry> activityEntry = 
service.createActivityEntry(id,groupId,APP_ID,fields,conversionUtilTest.convert(activityStreamsEntry),token);
+
+
+
+        assertThat(conversionUtilTest.convert(activityEntry.get()).getTitle(), 
is(activityStreamsEntry.getTitle()));
+
+
+
+    }
+
+    @Test
+    public void getActivityEntriesTest() throws ExecutionException, 
InterruptedException {
+
+        UserId id = new UserId(UserId.Type.userId, ID_1);
+        UserId id2 = new UserId(UserId.Type.userId, ID_2);
+        Set<UserId> users = new HashSet<UserId>();
+        users.add(id);
+        users.add(id2);
+
+        GroupId groupId = new GroupId(GroupId.Type.self, GROUP_ID);
+        Set<String> fields = new HashSet<String>();
+
+        
expect(repository.save(activityStreamsEntry)).andReturn(activityStreamsEntry);
+        expect(repository.getByUserId(ID_1)).andReturn((List) 
getActivityList());
+        
expect(personService.getPeople(users,groupId,null,fields,token)).andReturn(ImmediateFuture.newInstance(new
 RestfulCollection<Person>(getDbPersonList())));
+        replay(repository);
+        replay(personService);
+
+        
service.createActivityEntry(id,groupId,APP_ID,fields,conversionUtilTest.convert(activityStreamsEntry),token);
+
+        Future<RestfulCollection<ActivityEntry>> result = 
service.getActivityEntries(users,groupId,APP_ID,fields,null,token);
+
+        assertThat(result, is(notNullValue()));
+        assertThat(result.get().getTotalResults(), is(equalTo(1)));
+
+
+
+    }
+
+    @Test
+    public void getActivityEntriesWithIdsTest() throws ExecutionException, 
InterruptedException {
+        UserId id = new UserId(UserId.Type.userId, ID_1);
+        UserId id2 = new UserId(UserId.Type.userId, ID_2);
+        HashSet<UserId> users = new HashSet<UserId>();
+        users.add(id);
+        users.add(id2);
+        GroupId groupId = new GroupId(GroupId.Type.self, GROUP_ID);
+        Set<String> fields = new HashSet<String>();
+
+        
expect(repository.save(activityStreamsEntry)).andReturn(activityStreamsEntry);
+        
expect(repository.getById(ACTIVITY_ID)).andReturn(activityStreamsEntry);
+        
expect(personService.getPeople(users,groupId,null,fields,token)).andReturn(ImmediateFuture.newInstance(new
 RestfulCollection<Person>(getDbPersonList())));
+        replay(repository);
+        replay(personService);
+
+        Future<ActivityEntry> entry =  
service.createActivityEntry(id,groupId,APP_ID,fields,conversionUtilTest.convert(activityStreamsEntry),eq(token));
+
+        HashSet<String> activityIds = new HashSet<String>();
+        activityIds.add(entry.get().getId());
+        log.info("getting id: " + entry.get().getId());
+        Future<RestfulCollection<ActivityEntry>> activities = 
service.getActivityEntries(id,groupId,APP_ID,fields,null,activityIds,token);
+
+        assertThat(activities, is(notNullValue()));
+        assertThat(activities.get().getTotalResults(), is(equalTo(1)));
+
+
+
+    }
+
+    @Test
+    public void getActivityEntryWithIdTest() throws ExecutionException, 
InterruptedException {
+        UserId id = new UserId(UserId.Type.userId, ID_1);
+
+        GroupId groupId = new GroupId(GroupId.Type.self, GROUP_ID);
+        Set<String> fields = new HashSet<String>();
+
+
+        
expect(repository.save(activityStreamsEntry)).andReturn(activityStreamsEntry);
+        
expect(repository.getById(ACTIVITY_ID)).andReturn(activityStreamsEntry);
+        replay(repository);
+
+
+        Future<ActivityEntry> entry =  
service.createActivityEntry(id,groupId,APP_ID,fields,conversionUtilTest.convert(activityStreamsEntry),token);
+
+        Future<ActivityEntry> activity = 
service.getActivityEntry(id,groupId,APP_ID,fields,entry.get().getId(),token);
+
+        assertThat(activity, is(notNullValue()));
+        assertThat(activity.get().getTitle(), is(entry.get().getTitle()));
+        assertThat(activity.get().getId(), is(entry.get().getId()));
+
+
+
+    }
+
+    @Test
+    public void deleteActivityEntryWithIdTest() throws ExecutionException, 
InterruptedException {
+        UserId id = new UserId(UserId.Type.userId, ID_1);
+
+        GroupId groupId = new GroupId(GroupId.Type.self, GROUP_ID);
+        Set<String> fields = new HashSet<String>();
+
+
+        
expect(repository.save(activityStreamsEntry)).andReturn(activityStreamsEntry);
+        
expect(repository.getById(ACTIVITY_ID)).andReturn(activityStreamsEntry);
+        repository.delete(activityStreamsEntry);
+        expectLastCall();
+        replay(repository);
+
+
+        
service.createActivityEntry(id,groupId,APP_ID,fields,conversionUtilTest.convert(activityStreamsEntry),token);
+
+        HashSet<String> activityIds = new HashSet<String>();
+        activityIds.add(ACTIVITY_ID);
+
+        service.deleteActivityEntries(id,groupId,APP_ID,activityIds,token);
+
+        Future<ActivityEntry> activity = 
service.getActivityEntry(id,groupId,APP_ID,fields,ACTIVITY_ID,token);
+
+        assertThat(activity, is(nullValue()));
+
+    }
+
+
+
+
+    private org.apache.shindig.social.opensocial.model.Person getDbPerson() {
+        PersonImpl  dbPerson = new PersonImpl();
+        dbPerson.setId(ID_1);
+
+        dbPerson.setDisplayName("Test");
+        return dbPerson;
+    }
+
+    private org.apache.shindig.social.opensocial.model.Person 
getDbPerson(String id) {
+        PersonImpl dbPerson = new PersonImpl();
+        dbPerson.setId(id);
+        dbPerson.setDisplayName("Test");
+
+        return dbPerson;
+    }
+    private List<org.apache.shindig.social.opensocial.model.Person> 
getDbPersonList() {
+
+        return Lists.asList(getDbPerson(), new 
org.apache.shindig.social.opensocial.model.Person[]{});
+    }
+
+    private List<ActivityStreamsEntryImpl> getActivityList() {
+
+        return Lists.asList(activityStreamsEntry, new 
ActivityStreamsEntryImpl[]{});
+    }
+
+
+
+}

Added: 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/util/ActivityConversionUtilTest.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/util/ActivityConversionUtilTest.java?rev=1440223&view=auto
==============================================================================
--- 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/util/ActivityConversionUtilTest.java
 (added)
+++ 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/java/org/apache/rave/opensocial/util/ActivityConversionUtilTest.java
 Tue Jan 29 23:55:08 2013
@@ -0,0 +1,163 @@
+package org.apache.rave.opensocial.util;
+
+
+
+import org.apache.rave.portal.model.ActivityStreamsMediaLink;
+import org.apache.rave.portal.model.ActivityStreamsObject;
+import org.apache.rave.portal.model.impl.ActivityStreamsEntryImpl;
+import org.apache.rave.portal.model.impl.ActivityStreamsMediaLinkImpl;
+import org.apache.rave.portal.model.impl.ActivityStreamsObjectImpl;
+import org.apache.rave.util.ActivityConversionUtil;
+import org.apache.shindig.social.core.model.ActivityEntryImpl;
+import org.apache.shindig.social.core.model.ActivityObjectImpl;
+import org.apache.shindig.social.opensocial.model.ActivityEntry;
+import org.apache.shindig.social.opensocial.model.ActivityObject;
+import org.apache.shindig.social.opensocial.model.MediaLink;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class ActivityConversionUtilTest {
+
+    private ActivityStreamsEntryImpl activityStreamsEntry;
+    private List<ActivityObject> activityObjects;
+    private List<ActivityStreamsObjectImpl> activityStreamsObjects;
+    private ActivityEntryImpl activityEntry;
+    private ActivityObject activityObject;
+    private ActivityStreamsObjectImpl activityStreamsObject;
+    private ActivityStreamsMediaLinkImpl activityStreamsMediaLink;
+
+    private ActivityStreamsObjectImpl authorObject;
+    private  ActivityConversionUtil conversionUtilTest ;
+
+    private static final String ID_1 = "1234";
+    private static final String GROUP_ID = "self";
+    private static final String ACTIVITY_TITLE = "Activity Title";
+    private static final String ACTIVITY_ID = "Activity ID";
+
+    @Before
+    public void setup() {
+        conversionUtilTest=new ActivityConversionUtil();
+
+        activityStreamsEntry = new ActivityStreamsEntryImpl();
+        activityStreamsObject = new ActivityStreamsObjectImpl();
+        authorObject = new ActivityStreamsObjectImpl();
+        authorObject.setDisplayName("Test Author");
+        activityStreamsObject.setAuthor(authorObject);
+        activityStreamsObject.setDisplayName("Test Streams Object");
+        activityStreamsObject.setPublished(new Date());
+        activityStreamsObject.setId("Test ID");
+        activityStreamsEntry.setUserId(ID_1);
+        activityStreamsEntry.setActor(activityStreamsObject);
+        activityStreamsEntry.setContent("Activity Content");
+        activityStreamsEntry.setGenerator(new ActivityStreamsObjectImpl());
+        activityStreamsEntry.setIcon(new ActivityStreamsMediaLinkImpl());
+        activityStreamsEntry.setId(ACTIVITY_ID);
+        activityStreamsEntry.setObject(activityStreamsObject);
+        activityStreamsEntry.setPublished(new Date());
+        activityStreamsEntry.setProvider(new ActivityStreamsObjectImpl());
+        activityStreamsEntry.setTarget(new ActivityStreamsObjectImpl());
+        activityStreamsEntry.setTitle(ACTIVITY_TITLE);
+        activityStreamsEntry.setUpdated(new Date());
+        activityStreamsEntry.setUrl("Activity URL");
+        activityStreamsEntry.setVerb("Activity Verb");
+        activityStreamsEntry.setOpenSocial(new ActivityObjectImpl());
+        activityObjects = new ArrayList<ActivityObject>();
+        activityObjects.add(new ActivityObjectImpl());
+
+        activityStreamsObjects = new ArrayList<ActivityStreamsObjectImpl>();
+        activityStreamsObjects.add(new ActivityStreamsObjectImpl());
+
+        activityEntry = new ActivityEntryImpl();
+        activityEntry.setId("entry id");
+        activityEntry.setTitle("activity title");
+        activityEntry.setVerb("activity verb");
+
+        activityObject = new ActivityObjectImpl();
+        activityObject.setId("object id");
+        activityObject.setSummary("summary");
+        activityObject.setUpdated(new Date().toString());
+
+        activityStreamsMediaLink = new ActivityStreamsMediaLinkImpl();
+        activityStreamsMediaLink.setHeight(10);
+        activityStreamsMediaLink.setWidth(10);
+        activityStreamsMediaLink.setDuration(10);
+        activityStreamsMediaLink.setUrl("test");
+
+
+
+
+    }
+
+    @Test
+    public void testConvertActivityEntry()  {
+        ActivityStreamsEntryImpl activityStreamsEntry1 = 
conversionUtilTest.convert((ActivityEntry)activityEntry);
+
+        assertThat(activityStreamsEntry1.getId(), 
is(equalTo(activityEntry.getId())));
+
+        ActivityEntry reconverted = 
conversionUtilTest.convert(activityStreamsEntry1);
+
+        assertThat(reconverted.getId(), 
is(equalTo(activityStreamsEntry1.getId())));
+    }
+
+    @Test
+    public void testConvertAll()  {
+       List<ActivityObject> convertedObjects = 
conversionUtilTest.convert(activityStreamsObjects);
+
+        assertThat(convertedObjects.size(), 
is(equalTo(activityStreamsObjects.size())));
+
+
+    }
+
+    @Test
+    public void testConvertAllActivityObject()  {
+        List<ActivityStreamsObject> convertedObjects = 
conversionUtilTest.convertObjectEntries(activityObjects);
+
+        assertThat(convertedObjects.size(), 
is(equalTo(activityObjects.size())));
+
+
+    }
+
+
+
+    @Test
+    public void testConvertActivityStreamsObjectImpl()  {
+        ActivityObject entry = 
conversionUtilTest.convert(activityStreamsObject);
+
+        assertThat(entry.getDisplayName(), 
is(equalTo(activityStreamsObject.getDisplayName())));
+
+
+        ActivityStreamsObject reconverted = conversionUtilTest.convert(entry)  
  ;
+
+        assertThat(entry.getDisplayName(), 
is(equalTo(reconverted.getDisplayName())));
+
+
+    }
+
+    @Test
+    public void testConvertMediaLink()  {
+        MediaLink entry = conversionUtilTest.convert(activityStreamsMediaLink);
+
+        assertThat(entry.getHeight(), 
is(equalTo(activityStreamsMediaLink.getHeight())));
+        assertThat(entry.getDuration(), 
is(equalTo(activityStreamsMediaLink.getDuration())));
+        assertThat(entry.getWidth(), 
is(equalTo(activityStreamsMediaLink.getWidth())));
+        assertThat(entry.getUrl(), 
is(equalTo(activityStreamsMediaLink.getUrl())));
+
+        ActivityStreamsMediaLink reconverted = 
conversionUtilTest.convert(entry)    ;
+
+        assertThat(entry.getHeight(), is(equalTo(reconverted.getHeight())));
+        assertThat(entry.getDuration(), 
is(equalTo(reconverted.getDuration())));
+        assertThat(entry.getWidth(), is(equalTo(reconverted.getWidth())));
+        assertThat(entry.getUrl(), is(equalTo(reconverted.getUrl())));
+
+
+    }
+
+}

Modified: 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml?rev=1440223&r1=1440222&r2=1440223&view=diff
==============================================================================
--- 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml
 (original)
+++ 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-core/src/test/resources/rave-shindig-test-applicationContext.xml
 Tue Jan 29 23:55:08 2013
@@ -67,6 +67,10 @@
         <constructor-arg 
value="org.apache.rave.opensocial.repository.OpenSocialPersonRepository"/>
     </bean>
 
+    <bean id="mockActivitiesRepo" class="org.easymock.EasyMock" 
factory-method="createNiceMock">
+        <constructor-arg 
value="org.apache.rave.portal.repository.ActivityStreamsRepository"/>
+    </bean>
+
     <bean id="mockLockService" class="org.easymock.EasyMock" 
factory-method="createNiceMock"  primary="true">
         <constructor-arg value="org.apache.rave.service.LockService"/>
     </bean>
@@ -89,6 +93,10 @@
         <constructor-arg name="repository" ref="mockPersonRepo" />
     </bean>
 
+    <bean id="activityStreamsService" 
class="org.apache.rave.opensocial.service.impl.DefaultActivityStreamsService">
+        <constructor-arg name="repository" ref="mockActivitiesRepo" />
+    </bean>
+
     <bean id="springBindingModule" 
class="org.apache.rave.inject.SpringBindingModule" />
     <!--
     <bean id="oAuthStore" 
class="org.apache.rave.gadgets.oauth.inject.DefaultOAuthStore">


Reply via email to