From d2ceb3bc73514fee08f0c973ffe651a7df74c7e0 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Tue, 3 Aug 2010 14:32:44 +0000 Subject: [PATCH] Finish ALF-4130 - Replication Details get webscript Includes unit tests for most states of replication definitions git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@21572 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../replication-definition.lib.ftl | 17 +- .../replication/ReplicationModelBuilder.java | 3 +- .../replication/ReplicationRestApiTest.java | 242 +++++++++++++++++- 3 files changed, 248 insertions(+), 14 deletions(-) diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/replication/replication-definition.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/replication/replication-definition.lib.ftl index ca89527c8f..9f1bcfb898 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/replication/replication-definition.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/replication/replication-definition.lib.ftl @@ -16,11 +16,26 @@ <#escape x as jsonUtils.encodeJSONString(x)> { "name": "${replicationDefinition.name}", + "description": "${replicationDefinition.description}", "status" : "${replicationDefinition.status}", "startedAt" : <#if replicationDefinition.startedAt??>"${replicationDefinition.startedAt}"<#else>null, "endedAt" : <#if replicationDefinition.endedAt??>"${replicationDefinition.endedAt}"<#else>null, + "failureMessage" : <#if replicationDefinition.failureMessage??>"${replicationDefinition.failureMessage}"<#else>null, + "executionDetails" : <#if replicationDefinition.runningActionId??>"/api/running-action/${replicationDefinition.runningActionId}"<#else>null, + "payload": [ + <#list replicationDefinition.payload as node> + { + "nodeRef": "${node.nodeRef}", + "isFolder": ${node.isContainer?string}, + "name": "${node.name}", + "path": "${node.displayPath}/${node.name}", + }<#if node_has_next>, + + ], + "transferLocalReport" : <#if replicationDefinition.transferLocalReport??>"${replicationDefinition.transferLocalReport.nodeRef}"<#else>null, + "transferRemoteReport" : <#if replicationDefinition.transferRemoteReport??>"${replicationDefinition.transferRemoteReport.nodeRef}"<#else>null, "enabled" : ${replicationDefinition.enabled?string}, - <#-- TODO The rest of the fields --> + "targetName" : <#if replicationDefinition.targetName??>"${replicationDefinition.targetName}"<#else>null, } diff --git a/source/java/org/alfresco/repo/web/scripts/replication/ReplicationModelBuilder.java b/source/java/org/alfresco/repo/web/scripts/replication/ReplicationModelBuilder.java index 63f1c85b8e..5b70be6575 100644 --- a/source/java/org/alfresco/repo/web/scripts/replication/ReplicationModelBuilder.java +++ b/source/java/org/alfresco/repo/web/scripts/replication/ReplicationModelBuilder.java @@ -57,7 +57,6 @@ public class ReplicationModelBuilder protected static final String DEFINITION_PAYLOAD = "payload"; protected static final String DEFINITION_TRANSFER_LOCAL_REPORT = "transferLocalReport"; protected static final String DEFINITION_TRANSFER_REMOTE_REPORT = "transferRemoteReport"; - protected static final String DEFINITION_CANCEL_REQUESTED = "cancelRequested"; protected static final String DEFINITION_ENABLED = "enabled"; protected static final String DEFINITION_TARGET_NAME = "targetName"; @@ -197,7 +196,7 @@ public class ReplicationModelBuilder setStatus(rd, rdm); // Expand out the payload details - // TODO + rdm.put(DEFINITION_PAYLOAD, rd.getPayload()); Map model = new HashMap(); model.put(MODEL_DATA_ITEM, rdm); diff --git a/source/java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java b/source/java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java index ec2cd7e2c0..eaade592f2 100644 --- a/source/java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java +++ b/source/java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java @@ -18,15 +18,22 @@ */ package org.alfresco.repo.web.scripts.replication; +import javax.transaction.UserTransaction; + +import org.alfresco.model.ContentModel; +import org.alfresco.repo.action.ActionImpl; +import org.alfresco.repo.model.Repository; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.person.TestPersonManager; import org.alfresco.repo.web.scripts.BaseWebScriptTest; import org.alfresco.service.cmr.action.ActionTrackingService; import org.alfresco.service.cmr.replication.ReplicationDefinition; import org.alfresco.service.cmr.replication.ReplicationService; +import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.security.MutableAuthenticationService; import org.alfresco.service.cmr.security.PersonService; +import org.alfresco.service.transaction.TransactionService; import org.alfresco.util.GUID; import org.alfresco.util.ISO8601DateFormat; import org.json.JSONArray; @@ -48,10 +55,14 @@ public class ReplicationRestApiTest extends BaseWebScriptTest private static final String USER_NORMAL = "Normal" + GUID.generate(); + private NodeService nodeService; private TestPersonManager personManager; private ReplicationService replicationService; + private TransactionService transactionService; private ActionTrackingService actionTrackingService; + private Repository repositoryHelper; + public void testReplicationDefinitionsGet() throws Exception { Response response; @@ -369,46 +380,243 @@ public class ReplicationRestApiTest extends BaseWebScriptTest assertEquals(Status.STATUS_OK, response.getStatus()); String jsonStr = response.getContentAsString(); -System.err.println(jsonStr); JSONObject json = new JSONObject(jsonStr); assertNotNull(json); // Check - // TODO assertEquals("Test1", json.get("name")); + assertEquals("Testing", json.get("description")); assertEquals("New", json.get("status")); - assertEquals(true, json.get("enabled")); assertEquals(JSONObject.NULL, json.get("startedAt")); + assertEquals(JSONObject.NULL, json.get("endedAt")); + assertEquals(JSONObject.NULL, json.get("failureMessage")); + assertEquals(JSONObject.NULL, json.get("executionDetails")); + assertEquals(JSONObject.NULL, json.get("transferLocalReport")); + assertEquals(JSONObject.NULL, json.get("transferRemoteReport")); + assertEquals(true, json.get("enabled")); + assertEquals(JSONObject.NULL, json.get("targetName")); + // Payload is empty + assertEquals(0, json.getJSONArray("payload").length()); // Ensure we didn't get any unexpected data back - // TODO + JSONArray keys = json.names(); + for(int i=0; i