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">
