mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Added foldersDispositionScheduleWithGhosting
This commit is contained in:
@@ -74,4 +74,16 @@ public class RecordFoldersAPI extends BaseAPI
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HttpResponse postFolderAction(String user, String password, JSONObject requestParams, String recordFolder) {
|
||||||
|
String recNodeRef = getNodeRefSpacesStore() + contentService.getNodeRef(user, password, RM_SITE_ID, recordFolder);
|
||||||
|
try {
|
||||||
|
requestParams.put("nodeRef", recNodeRef);
|
||||||
|
return doPostJsonRequest(user, password, SC_OK, requestParams, RM_ACTIONS_API);
|
||||||
|
}
|
||||||
|
catch (JSONException error) {
|
||||||
|
LOGGER.error("Unable to extract response parameter", error);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -32,15 +32,22 @@ import org.alfresco.rest.core.v0.BaseAPI;
|
|||||||
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
||||||
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategory;
|
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategory;
|
||||||
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategoryChild;
|
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategoryChild;
|
||||||
|
import org.alfresco.rest.v0.RMAuditAPI;
|
||||||
import org.alfresco.rest.v0.RMRolesAndActionsAPI;
|
import org.alfresco.rest.v0.RMRolesAndActionsAPI;
|
||||||
|
import org.alfresco.rest.v0.RecordFoldersAPI;
|
||||||
import org.alfresco.rest.v0.RecordsAPI;
|
import org.alfresco.rest.v0.RecordsAPI;
|
||||||
import org.alfresco.rest.v0.service.DispositionScheduleService;
|
import org.alfresco.rest.v0.service.DispositionScheduleService;
|
||||||
import org.alfresco.test.AlfrescoTest;
|
import org.alfresco.test.AlfrescoTest;
|
||||||
|
import org.apache.chemistry.opencmis.client.api.CmisObject;
|
||||||
|
import org.json.JSONObject;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
import static org.alfresco.rest.rm.community.base.TestData.DEFAULT_PASSWORD;
|
import static org.alfresco.rest.rm.community.base.TestData.DEFAULT_PASSWORD;
|
||||||
import static org.alfresco.rest.rm.community.model.recordcategory.RetentionPeriodProperty.CREATED_DATE;
|
import static org.alfresco.rest.rm.community.model.recordcategory.RetentionPeriodProperty.CREATED_DATE;
|
||||||
@@ -61,9 +68,12 @@ public class FoldersDispositionScheduleTests extends BaseRMRestTest {
|
|||||||
private RMRolesAndActionsAPI rmRolesAndActionsAPI;
|
private RMRolesAndActionsAPI rmRolesAndActionsAPI;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RecordsAPI recordsAPI;
|
private RecordsAPI recordsAPI;
|
||||||
|
@Autowired
|
||||||
|
private RecordFoldersAPI recordFoldersAPI;
|
||||||
@Autowired
|
@Autowired
|
||||||
private DispositionScheduleService dispositionScheduleService;
|
private DispositionScheduleService dispositionScheduleService;
|
||||||
|
@Autowired
|
||||||
|
private RMAuditAPI rmAuditAPI;
|
||||||
|
|
||||||
private RecordCategory Category1;
|
private RecordCategory Category1;
|
||||||
|
|
||||||
@@ -101,7 +111,7 @@ public class FoldersDispositionScheduleTests extends BaseRMRestTest {
|
|||||||
createRMUser();
|
createRMUser();
|
||||||
|
|
||||||
// create disposition schedule
|
// create disposition schedule
|
||||||
dispositionScheduleService.createCategoryRetentionSchedule(Category1.getName(), true);
|
dispositionScheduleService.createCategoryRetentionSchedule(Category1.getName(), false);
|
||||||
|
|
||||||
// add cut off step
|
// add cut off step
|
||||||
dispositionScheduleService.addCutOffAfterPeriodStep(Category1.getName(), "day|1", CREATED_DATE);
|
dispositionScheduleService.addCutOffAfterPeriodStep(Category1.getName(), "day|1", CREATED_DATE);
|
||||||
@@ -119,7 +129,7 @@ public class FoldersDispositionScheduleTests extends BaseRMRestTest {
|
|||||||
|
|
||||||
recordsAPI.createNonElectronicRecord(getAdminUser().getUsername(),
|
recordsAPI.createNonElectronicRecord(getAdminUser().getUsername(),
|
||||||
getAdminUser().getPassword(),getDefaultNonElectronicRecordProperties(nonElectronicRecord),
|
getAdminUser().getPassword(),getDefaultNonElectronicRecordProperties(nonElectronicRecord),
|
||||||
recordsCategory, folderDisposition);
|
Category1.getName(), folderDisposition);
|
||||||
|
|
||||||
// complete records
|
// complete records
|
||||||
String nonElRecordName = recordsAPI.getRecordFullName(getAdminUser().getUsername(),
|
String nonElRecordName = recordsAPI.getRecordFullName(getAdminUser().getUsername(),
|
||||||
@@ -130,18 +140,32 @@ public class FoldersDispositionScheduleTests extends BaseRMRestTest {
|
|||||||
recordsAPI.completeRecord(RM_ADMIN, DEFAULT_PASSWORD, elRecordName);
|
recordsAPI.completeRecord(RM_ADMIN, DEFAULT_PASSWORD, elRecordName);
|
||||||
|
|
||||||
// edit disposition date and cut off the folder
|
// edit disposition date and cut off the folder
|
||||||
|
recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
|
||||||
|
getAdminUser().getPassword(),editDispositionDateJson(),folder1.getName());
|
||||||
|
recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
|
||||||
|
getAdminUser().getPassword(),new JSONObject().put("name","cutoff"),folder1.getName());
|
||||||
|
|
||||||
// edit disposition date and destroy the folder
|
// edit disposition date and destroy the folder
|
||||||
|
recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
|
||||||
// check the folder has been successfully destroyed
|
getAdminUser().getPassword(),editDispositionDateJson(),folder1.getName());
|
||||||
|
recordFoldersAPI.postFolderAction(getAdminUser().getUsername(),
|
||||||
|
getAdminUser().getPassword(),new JSONObject().put("name","destroy"),folder1.getName());
|
||||||
|
|
||||||
// check the electronic record content is not available
|
// check the electronic record content is not available
|
||||||
|
CmisObject elRecordContent = recordsAPI.getRecord(getAdminUser().getUsername(),
|
||||||
|
getAdminUser().getPassword(),folderDisposition,elRecordName);
|
||||||
|
|
||||||
|
CmisObject nonElRecordContent = recordsAPI.getRecord(getAdminUser().getUsername(),
|
||||||
|
getAdminUser().getPassword(),folderDisposition,nonElRecordName);
|
||||||
|
|
||||||
// delete electronic record
|
// delete electronic record
|
||||||
|
recordsAPI.deleteRecord(getAdminUser().getUsername(),
|
||||||
// check the record have been deleted
|
getAdminUser().getPassword(),elRecordName,Category1.getName(),folderDisposition);
|
||||||
|
recordsAPI.deleteRecord(getAdminUser().getUsername(),
|
||||||
|
getAdminUser().getPassword(),nonElRecordName,Category1.getName(),folderDisposition);
|
||||||
|
|
||||||
// delete category
|
// delete category
|
||||||
|
deleteRecordCategory(Category1.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -204,4 +228,32 @@ public class FoldersDispositionScheduleTests extends BaseRMRestTest {
|
|||||||
return defaultProperties;
|
return defaultProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private JSONObject editDispositionDateJson() {
|
||||||
|
JSONObject requestParams = new JSONObject();
|
||||||
|
|
||||||
|
requestParams.put("name","editDispositionActionAsOfDate");
|
||||||
|
JSONObject params = new JSONObject();
|
||||||
|
requestParams.put("params",params);
|
||||||
|
|
||||||
|
JSONObject asOfDate = new JSONObject();
|
||||||
|
params.put("asOfDate",asOfDate);
|
||||||
|
asOfDate.put("iso8601",getCurrentDate());
|
||||||
|
return requestParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
private JSONObject cutOffJson() {
|
||||||
|
JSONObject requestParams = new JSONObject();
|
||||||
|
requestParams.put("name","cutoff");
|
||||||
|
return requestParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCurrentDate() {
|
||||||
|
Date date = new Date(System.currentTimeMillis());
|
||||||
|
// Conversion
|
||||||
|
SimpleDateFormat sdf;
|
||||||
|
sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
|
||||||
|
sdf.setTimeZone(TimeZone.getTimeZone("CET"));
|
||||||
|
return sdf.format(date);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user