Status Updates can now be sent when publishing content to a channel.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28392 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
N Smith
2011-06-14 15:15:30 +00:00
parent 233cf9a368
commit 38dd3a04fb
20 changed files with 362 additions and 63 deletions

View File

@@ -32,7 +32,12 @@ import static org.alfresco.model.ContentModel.PROP_LONGITUDE;
import static org.alfresco.model.ContentModel.PROP_NAME;
import static org.alfresco.model.ContentModel.TYPE_CONTENT;
import static org.alfresco.repo.publishing.PublishingModel.ASSOC_LAST_PUBLISHING_EVENT;
import static org.mockito.Mockito.*;
import static org.mockito.Matchers.anyMap;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.Serializable;
import java.util.Calendar;
@@ -49,6 +54,7 @@ import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.service.cmr.publishing.MutablePublishingPackage;
import org.alfresco.service.cmr.publishing.PublishingPackage;
import org.alfresco.service.cmr.publishing.PublishingService;
import org.alfresco.service.cmr.publishing.StatusUpdate;
import org.alfresco.service.cmr.publishing.channels.ChannelService;
import org.alfresco.service.cmr.publishing.channels.ChannelType;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
@@ -59,7 +65,6 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.junit.Test;
import org.mockito.exceptions.verification.NeverWantedButInvoked;
import org.springframework.beans.factory.annotation.Autowired;
/**
@@ -228,6 +233,7 @@ public class PublishEventActionTest extends AbstractPublishingIntegrationTest
verify(channelType, times(1)).publish(eq(publishedNode), anyMap());
}
@SuppressWarnings("unchecked")
public void testChannelTypePublishIsCalledOnUpdate() throws Exception
{
// Create content node with appropriate aspects added.
@@ -319,11 +325,33 @@ public class PublishEventActionTest extends AbstractPublishingIntegrationTest
verify(channelType, times(1)).publish(eq(publishedNode), anyMap());
}
@SuppressWarnings("unchecked")
public void testStatusUpdate() throws Exception
{
NodeRef source = createContentNode(contentNodeName, content);
// Create Status Update
String message = "Here is the message ";
StatusUpdate status = queue.createStatusUpdate(message, source, channelName);
String url = "http://test/url";
publishNode(source, status);
String expMessage = message + url;
verify(channelType, times(1)).updateStatus(eq(expMessage), anyMap());
}
private NodeRef publishNode(NodeRef source)
{
return publishNode(source, null);
}
private NodeRef publishNode(NodeRef source, StatusUpdate statusUpdate)
{
MutablePublishingPackage pckg = queue.createPublishingPackage();
pckg.addNodesToPublish(source);
scheduleEvent(pckg);
scheduleEvent(pckg, statusUpdate);
assertNotNull(eventId);
NodeRef eventNode = new NodeRef(eventId);
@@ -333,11 +361,11 @@ public class PublishEventActionTest extends AbstractPublishingIntegrationTest
return eventNode;
}
private void scheduleEvent(PublishingPackage publishPckg)
private void scheduleEvent(PublishingPackage publishPckg, StatusUpdate statusUpdate)
{
Calendar schedule = Calendar.getInstance();
schedule.add(Calendar.YEAR, 1);
this.eventId = queue.scheduleNewEvent(publishPckg, channelName, schedule, null);
this.eventId = queue.scheduleNewEvent(publishPckg, channelName, schedule, null, statusUpdate);
}
private void addGeographicAspect(NodeRef source, double lattitude, double longtitude)