Added foldersDispositionScheduleWithGhosting

This commit is contained in:
kshah
2022-07-20 14:29:01 +05:30
parent e621f16464
commit 482dc233c4
2 changed files with 71 additions and 7 deletions

View File

@@ -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;
}
} }

View File

@@ -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);
}
} }