mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge master into feature/RM-5416_REST_API_Tests_for_Folder_Classification
# Conflicts: # rm-automation/rm-automation-enterprise-rest-api/src/main/java/org/alfresco/rest/rm/enterprise/v0/ClassificationAPI.java # rm-enterprise/rm-enterprise-repo/src/main/amp/config/alfresco/module/alfresco-rm-enterprise-repo/messages/classified-content/classified-content.properties # rm-enterprise/rm-enterprise-repo/src/main/amp/config/alfresco/module/alfresco-rm-enterprise-repo/module-context.xml # rm-enterprise/rm-enterprise-repo/src/main/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationService.java # rm-enterprise/rm-enterprise-repo/src/main/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImpl.java # rm-enterprise/rm-enterprise-repo/src/main/java/org/alfresco/module/org_alfresco_module_rm/securitymarks/SecurityMarkingServiceImpl.java # rm-enterprise/rm-enterprise-repo/src/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/ClassifyFoldersTest.java
This commit is contained in:
64
pom.xml
64
pom.xml
@@ -95,6 +95,70 @@
|
|||||||
</pluginRepository>
|
</pluginRepository>
|
||||||
</pluginRepositories>
|
</pluginRepositories>
|
||||||
</profile>
|
</profile>
|
||||||
|
<!-- Generate the Javadoc for Public API only (filtered on AlfrescoPublicApi annotation) -->
|
||||||
|
<profile>
|
||||||
|
<id>publicapi</id>
|
||||||
|
<properties>
|
||||||
|
<docflex.version>1.6.1</docflex.version>
|
||||||
|
</properties>
|
||||||
|
<!-- Downloads the docflex license -->
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.docflex</groupId>
|
||||||
|
<artifactId>docflex-alfresco-license</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
<type>license</type>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<!-- Extracts Docflex locally -->
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
<version>2.10</version>
|
||||||
|
<executions>
|
||||||
|
<!-- Unzips the docflex/javadoc doclet -->
|
||||||
|
<execution>
|
||||||
|
<id>default-cli</id>
|
||||||
|
<phase>generate-sources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>unpack</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<artifactItems>
|
||||||
|
<artifactItem>
|
||||||
|
<groupId>com.docflex</groupId>
|
||||||
|
<artifactId>docflex-javadoc</artifactId>
|
||||||
|
<version>${docflex.version}</version>
|
||||||
|
<type>zip</type>
|
||||||
|
</artifactItem>
|
||||||
|
</artifactItems>
|
||||||
|
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<version>2.10.3</version>
|
||||||
|
<configuration>
|
||||||
|
<doclet>com.docflex.javadoc.Doclet</doclet>
|
||||||
|
<docletPath>${project.build.directory}/docflex-javadoc-${docflex.version}/lib/docflex-javadoc.jar</docletPath>
|
||||||
|
<additionalparam>
|
||||||
|
-license ${settings.localRepository}/com/docflex/docflex-alfresco-license/1.0/docflex-alfresco-license-1.0.license
|
||||||
|
-template ${project.build.directory}/docflex-javadoc-${docflex.version}/templates/JavadocPro/FramedDoc.tpl
|
||||||
|
-nodialog
|
||||||
|
-launchviewer=false
|
||||||
|
-p:filter.byAnns.include.classes=org.alfresco.api.AlfrescoPublicApi
|
||||||
|
-p:docTitle "${project.name} ${project.version} Public API"
|
||||||
|
-p:windowTitle "${project.name} ${project.version} Public API"
|
||||||
|
</additionalparam>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
<maven.build.sourceVersion>1.8</maven.build.sourceVersion>
|
<maven.build.sourceVersion>1.8</maven.build.sourceVersion>
|
||||||
<alfresco.rm.share>alfresco-rm-community-share</alfresco.rm.share>
|
<alfresco.rm.share>alfresco-rm-community-share</alfresco.rm.share>
|
||||||
<alfresco.rm.repo>alfresco-rm-community-repo</alfresco.rm.repo>
|
<alfresco.rm.repo>alfresco-rm-community-repo</alfresco.rm.repo>
|
||||||
<tas.restapi.version>5.2.0-7</tas.restapi.version>
|
<tas.restapi.version>5.2.0-9</tas.restapi.version>
|
||||||
<fluent.json.version>2.0.0</fluent.json.version>
|
<fluent.json.version>2.0.0</fluent.json.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
@@ -68,5 +68,10 @@
|
|||||||
<artifactId>fluent-json</artifactId>
|
<artifactId>fluent-json</artifactId>
|
||||||
<version>${fluent.json.version}</version>
|
<version>${fluent.json.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.alfresco.test</groupId>
|
||||||
|
<artifactId>alfresco-testng</artifactId>
|
||||||
|
<version>1.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@@ -83,11 +83,12 @@ public abstract class BaseAPI
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
|
private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ContentService contentService;
|
private ContentService contentService;
|
||||||
|
|
||||||
private static final String NODE_REF_WORKSPACE_SPACES_STORE = "workspace://SpacesStore/";
|
private static final String NODE_REF_WORKSPACE_SPACES_STORE = "workspace://SpacesStore/";
|
||||||
private static final String FILE_PLAN_PATH = "Sites/rm/documentLibrary";
|
private static final String FILE_PLAN_PATH = "/Sites/rm/documentLibrary";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method to extract list of properties values from result.
|
* Helper method to extract list of properties values from result.
|
||||||
@@ -406,9 +407,13 @@ public abstract class BaseAPI
|
|||||||
{
|
{
|
||||||
responseBody = new JSONObject(EntityUtils.toString(response.getEntity()));
|
responseBody = new JSONObject(EntityUtils.toString(response.getEntity()));
|
||||||
}
|
}
|
||||||
catch (ParseException | IOException | JSONException error)
|
catch (JSONException error)
|
||||||
{
|
{
|
||||||
LOGGER.error("Parsing message body failed", error);
|
LOGGER.error("Converting message body to JSON failed. Body: {}", responseBody, error);
|
||||||
|
}
|
||||||
|
catch (ParseException | IOException error)
|
||||||
|
{
|
||||||
|
LOGGER.error("Parsing message body failed.", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (response.getStatusLine().getStatusCode())
|
switch (response.getStatusLine().getStatusCode())
|
||||||
|
@@ -44,10 +44,10 @@ import static org.springframework.http.HttpStatus.FORBIDDEN;
|
|||||||
import static org.springframework.http.HttpStatus.NOT_FOUND;
|
import static org.springframework.http.HttpStatus.NOT_FOUND;
|
||||||
import static org.springframework.http.HttpStatus.NO_CONTENT;
|
import static org.springframework.http.HttpStatus.NO_CONTENT;
|
||||||
import static org.springframework.http.HttpStatus.OK;
|
import static org.springframework.http.HttpStatus.OK;
|
||||||
import static org.springframework.social.alfresco.api.entities.Site.Visibility.PUBLIC;
|
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
import static org.testng.Assert.assertNotNull;
|
import static org.testng.Assert.assertNotNull;
|
||||||
|
|
||||||
|
import org.alfresco.dataprep.SiteService.Visibility;
|
||||||
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
||||||
import org.alfresco.rest.rm.community.base.TestData;
|
import org.alfresco.rest.rm.community.base.TestData;
|
||||||
import org.alfresco.rest.rm.community.model.site.RMSite;
|
import org.alfresco.rest.rm.community.model.site.RMSite;
|
||||||
@@ -97,7 +97,7 @@ public class RMSiteTests extends BaseRMRestTest
|
|||||||
assertEquals(rmSiteResponse.getTitle(), RM_TITLE);
|
assertEquals(rmSiteResponse.getTitle(), RM_TITLE);
|
||||||
assertEquals(rmSiteResponse.getDescription(), RM_DESCRIPTION);
|
assertEquals(rmSiteResponse.getDescription(), RM_DESCRIPTION);
|
||||||
assertEquals(rmSiteResponse.getCompliance(), STANDARD);
|
assertEquals(rmSiteResponse.getCompliance(), STANDARD);
|
||||||
assertEquals(rmSiteResponse.getVisibility(), PUBLIC);
|
assertEquals(rmSiteResponse.getVisibility(), Visibility.PUBLIC);
|
||||||
assertEquals(rmSiteResponse.getRole(), SiteManager.toString());
|
assertEquals(rmSiteResponse.getRole(), SiteManager.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ public class RMSiteTests extends BaseRMRestTest
|
|||||||
assertEquals(rmSiteModel.getId(), RM_ID);
|
assertEquals(rmSiteModel.getId(), RM_ID);
|
||||||
assertEquals(rmSiteModel.getDescription(), RM_DESCRIPTION);
|
assertEquals(rmSiteModel.getDescription(), RM_DESCRIPTION);
|
||||||
assertEquals(rmSiteModel.getCompliance(), STANDARD);
|
assertEquals(rmSiteModel.getCompliance(), STANDARD);
|
||||||
assertEquals(rmSiteModel.getVisibility(), PUBLIC);
|
assertEquals(rmSiteModel.getVisibility(), Visibility.PUBLIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ public class RMSiteTests extends BaseRMRestTest
|
|||||||
assertEquals(rmSiteModel.getTitle(), RM_TITLE);
|
assertEquals(rmSiteModel.getTitle(), RM_TITLE);
|
||||||
assertEquals(rmSiteModel.getDescription(), RM_DESCRIPTION);
|
assertEquals(rmSiteModel.getDescription(), RM_DESCRIPTION);
|
||||||
assertEquals(rmSiteModel.getCompliance(), DOD5015);
|
assertEquals(rmSiteModel.getCompliance(), DOD5015);
|
||||||
assertEquals(rmSiteModel.getVisibility(), PUBLIC);
|
assertEquals(rmSiteModel.getVisibility(), Visibility.PUBLIC);
|
||||||
assertEquals(rmSiteModel.getRole(), SiteManager.toString());
|
assertEquals(rmSiteModel.getRole(), SiteManager.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +259,7 @@ public class RMSiteTests extends BaseRMRestTest
|
|||||||
assertEquals(rmSiteModel.getTitle(), NEW_TITLE);
|
assertEquals(rmSiteModel.getTitle(), NEW_TITLE);
|
||||||
assertEquals(rmSiteModel.getDescription(), NEW_DESCRIPTION);
|
assertEquals(rmSiteModel.getDescription(), NEW_DESCRIPTION);
|
||||||
assertNotNull(rmSiteModel.getCompliance());
|
assertNotNull(rmSiteModel.getCompliance());
|
||||||
assertEquals(rmSiteModel.getVisibility(), PUBLIC);
|
assertEquals(rmSiteModel.getVisibility(), Visibility.PUBLIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -43,7 +43,7 @@
|
|||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<alfresco.version>5.2.f</alfresco.version>
|
<alfresco.version>5.2.g</alfresco.version>
|
||||||
<share.version>5.2.e</share.version>
|
<share.version>5.2.f</share.version>
|
||||||
</properties>
|
</properties>
|
||||||
</project>
|
</project>
|
||||||
|
@@ -91,14 +91,21 @@ public class DeleteHoldTest extends BaseRMTestCase
|
|||||||
|
|
||||||
public void testDeleteHoldBehaviourForRecordFolder()
|
public void testDeleteHoldBehaviourForRecordFolder()
|
||||||
{
|
{
|
||||||
|
NodeRef hold1 = doTestInTransaction(new Test<NodeRef>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public NodeRef run() throws Exception
|
||||||
|
{
|
||||||
|
// create test holds
|
||||||
|
return createAndCheckHold();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception
|
||||||
doTestInTransaction(new Test<Void>()
|
doTestInTransaction(new Test<Void>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Void run() throws Exception
|
public Void run() throws Exception
|
||||||
{
|
{
|
||||||
// create test holds
|
|
||||||
NodeRef hold1 = createAndCheckHold();
|
|
||||||
|
|
||||||
// add the record folder to hold1
|
// add the record folder to hold1
|
||||||
holdService.addToHold(hold1, rmFolder);
|
holdService.addToHold(hold1, rmFolder);
|
||||||
|
|
||||||
@@ -131,13 +138,21 @@ public class DeleteHoldTest extends BaseRMTestCase
|
|||||||
|
|
||||||
public void testDeleteHoldBehaviourForMultipleHolds()
|
public void testDeleteHoldBehaviourForMultipleHolds()
|
||||||
{
|
{
|
||||||
|
List<NodeRef> holds = doTestInTransaction(new Test<List<NodeRef>>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public List<NodeRef> run() throws Exception
|
||||||
|
{
|
||||||
|
// create test holds
|
||||||
|
return createAndCheckHolds();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception
|
||||||
doTestInTransaction(new Test<Void>()
|
doTestInTransaction(new Test<Void>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Void run() throws Exception
|
public Void run() throws Exception
|
||||||
{
|
{
|
||||||
// create test holds
|
|
||||||
List<NodeRef> holds = createAndCheckHolds();
|
|
||||||
NodeRef hold1 = holds.get(0);
|
NodeRef hold1 = holds.get(0);
|
||||||
NodeRef hold2 = holds.get(1);
|
NodeRef hold2 = holds.get(1);
|
||||||
|
|
||||||
|
@@ -43,6 +43,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.util.GUID;
|
import org.alfresco.util.GUID;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.junit.Before;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -51,30 +52,26 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
*/
|
*/
|
||||||
public class RM1914Test extends BaseRMTestCase
|
public class RM1914Test extends BaseRMTestCase
|
||||||
{
|
{
|
||||||
|
//Fields required across transactions
|
||||||
|
NodeRef record1, transferFolder;
|
||||||
|
|
||||||
public void testRM1914() throws Exception
|
public void testRM1914() throws Exception
|
||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
|
|
||||||
NodeRef record1;
|
public void given(){
|
||||||
NodeRef record2;
|
|
||||||
|
|
||||||
public void given()
|
// create test holds
|
||||||
{
|
|
||||||
// 1. Any Category1, Category2 are created
|
|
||||||
NodeRef category1 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
NodeRef category1 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
||||||
NodeRef category2 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
NodeRef category2 = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
||||||
|
|
||||||
|
|
||||||
// 2. Disposition schedule is created for the Category1:
|
|
||||||
// - applied on Record
|
|
||||||
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
|
||||||
dsProps.put(PROP_DISPOSITION_AUTHORITY, CommonRMTestUtils.DEFAULT_DISPOSITION_AUTHORITY);
|
dsProps.put(PROP_DISPOSITION_AUTHORITY, CommonRMTestUtils.DEFAULT_DISPOSITION_AUTHORITY);
|
||||||
dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate());
|
dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate());
|
||||||
dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, true);
|
dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, true);
|
||||||
|
|
||||||
DispositionSchedule dispositionSchedule1 = dispositionService.createDispositionSchedule(category1, dsProps);
|
DispositionSchedule dispositionSchedule1 = dispositionService.createDispositionSchedule(category1, dsProps);
|
||||||
|
NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate());
|
||||||
|
|
||||||
// - add cutoff after "Related Record Transferred To Inactive Storage" completion event
|
// - add cutoff after "Related Record Transferred To Inactive Storage" completion event
|
||||||
Map<QName, Serializable> dispositionAction1 = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dispositionAction1 = new HashMap<QName, Serializable>(3);
|
||||||
@@ -83,16 +80,13 @@ public class RM1914Test extends BaseRMTestCase
|
|||||||
|
|
||||||
List<String> events = new ArrayList<String>(1);
|
List<String> events = new ArrayList<String>(1);
|
||||||
events.add("related_record_trasfered_inactive_storage");
|
events.add("related_record_trasfered_inactive_storage");
|
||||||
dispositionAction1.put(PROP_DISPOSITION_EVENT, (Serializable)events);
|
dispositionAction1.put(PROP_DISPOSITION_EVENT, (Serializable) events);
|
||||||
|
|
||||||
dispositionService.addDispositionActionDefinition(dispositionSchedule1, dispositionAction1);
|
dispositionService.addDispositionActionDefinition(dispositionSchedule1, dispositionAction1);
|
||||||
|
|
||||||
|
|
||||||
// 3. Folder1 > Record1 is created inside Category1
|
// 3. Folder1 > Record1 is created inside Category1
|
||||||
NodeRef folder1 = recordFolderService.createRecordFolder(category1, GUID.generate());
|
|
||||||
record1 = recordService.createRecordFromContent(folder1, GUID.generate(), TYPE_CONTENT, null, null);
|
record1 = recordService.createRecordFromContent(folder1, GUID.generate(), TYPE_CONTENT, null, null);
|
||||||
|
|
||||||
|
|
||||||
// 4. Disposition schedule is created for the Category2:
|
// 4. Disposition schedule is created for the Category2:
|
||||||
// applied on Record
|
// applied on Record
|
||||||
DispositionSchedule dispositionSchedule2 = dispositionService.createDispositionSchedule(category2, dsProps);
|
DispositionSchedule dispositionSchedule2 = dispositionService.createDispositionSchedule(category2, dsProps);
|
||||||
@@ -113,26 +107,27 @@ public class RM1914Test extends BaseRMTestCase
|
|||||||
dispositionAction2_2.put(PROP_DISPOSITION_LOCATION, StringUtils.EMPTY);
|
dispositionAction2_2.put(PROP_DISPOSITION_LOCATION, StringUtils.EMPTY);
|
||||||
|
|
||||||
dispositionService.addDispositionActionDefinition(dispositionSchedule2, dispositionAction2_2);
|
dispositionService.addDispositionActionDefinition(dispositionSchedule2, dispositionAction2_2);
|
||||||
|
|
||||||
// 5. Folder2 > Record2 is created inside Category2
|
// 5. Folder2 > Record2 is created inside Category2
|
||||||
NodeRef folder2 = recordFolderService.createRecordFolder(category2, GUID.generate());
|
NodeRef folder2 = recordFolderService.createRecordFolder(category2, GUID.generate());
|
||||||
record2 = recordService.createRecordFromContent(folder2, GUID.generate(), TYPE_CONTENT, null, null);
|
NodeRef record2 = recordService.createRecordFromContent(folder2, GUID.generate(), TYPE_CONTENT, null, null);
|
||||||
|
|
||||||
// 6. Record1 and Record2 are completed
|
// 6. Record1 and Record2 are completed
|
||||||
utils.completeRecord(record1);
|
utils.completeRecord(record1);
|
||||||
utils.completeRecord(record2);
|
utils.completeRecord(record2);
|
||||||
|
|
||||||
// 7. Create Cross-Reference link from Record1 to Record2
|
// 7. Create Cross-Reference link from Record1 to Record2
|
||||||
relationshipService.addRelationship(CUSTOM_REF_CROSSREFERENCE.getLocalName(), record1, record2);
|
relationshipService.addRelationship(CUSTOM_REF_CROSSREFERENCE.getLocalName(), record1, record2);
|
||||||
|
// 8. Cut off and transfer Record2
|
||||||
|
rmActionService.executeRecordsManagementAction(record2, CutOffAction.NAME, null);
|
||||||
|
|
||||||
|
transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(record2, TransferAction.NAME)
|
||||||
|
.getValue();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void when()
|
public void when()
|
||||||
{
|
{
|
||||||
// 8. Cut off and transfer Record2
|
|
||||||
rmActionService.executeRecordsManagementAction(record2, CutOffAction.NAME, null);
|
|
||||||
NodeRef transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(record2, TransferAction.NAME).getValue();
|
|
||||||
rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME);
|
rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,8 @@ import org.apache.commons.io.IOUtils;
|
|||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.extensions.webscripts.GUID;
|
import org.springframework.extensions.webscripts.GUID;
|
||||||
|
|
||||||
|
import javax.xml.soap.Node;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integration test for RM-4804
|
* Integration test for RM-4804
|
||||||
*
|
*
|
||||||
@@ -56,6 +58,10 @@ import org.springframework.extensions.webscripts.GUID;
|
|||||||
*/
|
*/
|
||||||
public class RM4804Test extends BaseRMTestCase
|
public class RM4804Test extends BaseRMTestCase
|
||||||
{
|
{
|
||||||
|
//Fields required across transactions
|
||||||
|
NodeRef record;
|
||||||
|
NodeRef transferFolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a category with disposition schedule applied on folder with Cut Of and Transfer, a record folder and a file PDF document
|
* Given a category with disposition schedule applied on folder with Cut Of and Transfer, a record folder and a file PDF document
|
||||||
* to folder, complete the record
|
* to folder, complete the record
|
||||||
@@ -67,14 +73,10 @@ public class RM4804Test extends BaseRMTestCase
|
|||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
NodeRef recordCategory;
|
|
||||||
NodeRef recordFolder;
|
|
||||||
NodeRef record;
|
|
||||||
|
|
||||||
public void given()
|
public void given()
|
||||||
{
|
{
|
||||||
// category is created
|
// category is created
|
||||||
recordCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
NodeRef recordCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
||||||
|
|
||||||
// create a disposition schedule for category, applied on folder
|
// create a disposition schedule for category, applied on folder
|
||||||
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dsProps = new HashMap<QName, Serializable>(3);
|
||||||
@@ -82,7 +84,8 @@ public class RM4804Test extends BaseRMTestCase
|
|||||||
dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate());
|
dsProps.put(PROP_DISPOSITION_INSTRUCTIONS, GUID.generate());
|
||||||
dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, false);
|
dsProps.put(PROP_RECORD_LEVEL_DISPOSITION, false);
|
||||||
|
|
||||||
DispositionSchedule dispositionSchedule = dispositionService.createDispositionSchedule(recordCategory, dsProps);
|
DispositionSchedule dispositionSchedule = dispositionService.createDispositionSchedule(recordCategory,
|
||||||
|
dsProps);
|
||||||
|
|
||||||
// cutoff immediately
|
// cutoff immediately
|
||||||
Map<QName, Serializable> dispositionActionCutOff = new HashMap<QName, Serializable>(3);
|
Map<QName, Serializable> dispositionActionCutOff = new HashMap<QName, Serializable>(3);
|
||||||
@@ -102,8 +105,7 @@ public class RM4804Test extends BaseRMTestCase
|
|||||||
dispositionService.addDispositionActionDefinition(dispositionSchedule, dispositionActionTransfer);
|
dispositionService.addDispositionActionDefinition(dispositionSchedule, dispositionActionTransfer);
|
||||||
|
|
||||||
// add folder under category
|
// add folder under category
|
||||||
recordFolder = recordFolderService.createRecordFolder(recordCategory, GUID.generate());
|
NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, GUID.generate());
|
||||||
|
|
||||||
// add record of type PDF under folder
|
// add record of type PDF under folder
|
||||||
Map<QName, Serializable> props = new HashMap<QName, Serializable>(1);
|
Map<QName, Serializable> props = new HashMap<QName, Serializable>(1);
|
||||||
props.put(ContentModel.PROP_TITLE, GUID.generate());
|
props.put(ContentModel.PROP_TITLE, GUID.generate());
|
||||||
@@ -112,14 +114,15 @@ public class RM4804Test extends BaseRMTestCase
|
|||||||
|
|
||||||
// complete the record
|
// complete the record
|
||||||
utils.completeRecord(record);
|
utils.completeRecord(record);
|
||||||
|
// cut off and transfer record
|
||||||
|
rmActionService.executeRecordsManagementAction(recordFolder, CutOffAction.NAME, null);
|
||||||
|
transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(recordFolder,
|
||||||
|
TransferAction.NAME)
|
||||||
|
.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void when()
|
public void when()
|
||||||
{
|
{
|
||||||
// cut off and transfer record
|
|
||||||
rmActionService.executeRecordsManagementAction(recordFolder, CutOffAction.NAME, null);
|
|
||||||
NodeRef transferFolder = (NodeRef) rmActionService.executeRecordsManagementAction(recordFolder, TransferAction.NAME)
|
|
||||||
.getValue();
|
|
||||||
rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME);
|
rmActionService.executeRecordsManagementAction(transferFolder, TransferCompleteAction.NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -43,6 +43,8 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
*/
|
*/
|
||||||
public class FreezeServiceImplTest extends BaseRMTestCase
|
public class FreezeServiceImplTest extends BaseRMTestCase
|
||||||
{
|
{
|
||||||
|
private List<NodeRef> holdAssocs;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isRecordTest()
|
protected boolean isRecordTest()
|
||||||
{
|
{
|
||||||
@@ -56,6 +58,8 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
*/
|
*/
|
||||||
public void testFreezeService() throws Exception
|
public void testFreezeService() throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
doTestInTransaction(new Test<Void>()
|
doTestInTransaction(new Test<Void>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@@ -72,19 +76,25 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
// Freeze a record
|
// Freeze a record
|
||||||
NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null);
|
NodeRef hold101 = holdService.createHold(filePlan, "freezename 101", "FreezeReason", null);
|
||||||
|
|
||||||
assertNotNull(hold101);
|
assertNotNull(hold101);
|
||||||
holdService.addToHold(hold101, recordOne);
|
holdService.addToHold(hold101, recordOne);
|
||||||
|
|
||||||
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
||||||
|
|
||||||
// Check the hold exists
|
// Check the hold exists
|
||||||
List<NodeRef> holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
assertEquals(1, holdAssocs.size());
|
assertEquals(1, holdAssocs.size());
|
||||||
|
|
||||||
NodeRef holdNodeRef = holdAssocs.iterator().next();
|
NodeRef holdNodeRef = holdAssocs.iterator().next();
|
||||||
|
|
||||||
|
|
||||||
assertEquals(holdNodeRef, hold101);
|
assertEquals(holdNodeRef, hold101);
|
||||||
assertTrue(holdService.isHold(holdNodeRef));
|
assertTrue(holdService.isHold(holdNodeRef));
|
||||||
assertEquals("FreezeReason", holdService.getHoldReason(holdNodeRef));
|
assertEquals("FreezeReason", holdService.getHoldReason(holdNodeRef));
|
||||||
List<NodeRef> frozenNodes = holdService.getHeld(holdNodeRef);
|
List<NodeRef> frozenNodes = holdService.getHeld(holdNodeRef);
|
||||||
|
|
||||||
assertNotNull(frozenNodes);
|
assertNotNull(frozenNodes);
|
||||||
assertEquals(1, frozenNodes.size());
|
assertEquals(1, frozenNodes.size());
|
||||||
|
|
||||||
@@ -107,6 +117,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
records.add(recordTwo);
|
records.add(recordTwo);
|
||||||
records.add(recordThree);
|
records.add(recordThree);
|
||||||
NodeRef newHold = holdService.createHold(filePlan, "Hold 102", "Freeze a set of nodes", null);
|
NodeRef newHold = holdService.createHold(filePlan, "Hold 102", "Freeze a set of nodes", null);
|
||||||
|
|
||||||
holdService.addToHold(newHold, records);
|
holdService.addToHold(newHold, records);
|
||||||
assertNotNull(newHold);
|
assertNotNull(newHold);
|
||||||
assertTrue(holdService.isHold(newHold));
|
assertTrue(holdService.isHold(newHold));
|
||||||
@@ -115,6 +126,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
assertEquals(2, holdAssocs.size());
|
assertEquals(2, holdAssocs.size());
|
||||||
|
|
||||||
for (NodeRef hold : holdAssocs)
|
for (NodeRef hold : holdAssocs)
|
||||||
{
|
{
|
||||||
String reason = holdService.getHoldReason(hold);
|
String reason = holdService.getHoldReason(hold);
|
||||||
@@ -148,7 +160,6 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
// Unfreeze a node
|
// Unfreeze a node
|
||||||
holdService.removeFromAllHolds(recordThree);
|
holdService.removeFromAllHolds(recordThree);
|
||||||
|
|
||||||
// Check the holds
|
// Check the holds
|
||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
@@ -183,9 +194,17 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
assertNotNull(freezeService.getFreezeInitiator(recordTwo));
|
assertNotNull(freezeService.getFreezeInitiator(recordTwo));
|
||||||
assertFalse(freezeService.isFrozen(recordThree));
|
assertFalse(freezeService.isFrozen(recordThree));
|
||||||
assertFalse(freezeService.isFrozen(recordFour));
|
assertFalse(freezeService.isFrozen(recordFour));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception
|
||||||
|
doTestInTransaction(new Test<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void run() throws Exception
|
||||||
|
{
|
||||||
// Relinquish the first hold
|
// Relinquish the first hold
|
||||||
holdNodeRef = holdAssocs.iterator().next();
|
NodeRef holdNodeRef = holdAssocs.iterator().next();
|
||||||
holdService.deleteHold(holdNodeRef);
|
holdService.deleteHold(holdNodeRef);
|
||||||
|
|
||||||
// Check the existing hold
|
// Check the existing hold
|
||||||
@@ -203,6 +222,7 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
|
|
||||||
// delete hold
|
// delete hold
|
||||||
holdService.deleteHold(holdNodeRef);
|
holdService.deleteHold(holdNodeRef);
|
||||||
|
|
||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertEquals(0, holdAssocs.size());
|
assertEquals(0, holdAssocs.size());
|
||||||
|
|
||||||
@@ -222,12 +242,19 @@ public class FreezeServiceImplTest extends BaseRMTestCase
|
|||||||
nodes.add(recordThree);
|
nodes.add(recordThree);
|
||||||
holdService.addToHold(hold, nodes);
|
holdService.addToHold(hold, nodes);
|
||||||
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
//assertTrue(freezeService.hasFrozenChildren(rmFolder));
|
||||||
|
|
||||||
// Check the hold
|
// Check the hold
|
||||||
holdAssocs = holdService.getHolds(filePlan);
|
holdAssocs = holdService.getHolds(filePlan);
|
||||||
assertNotNull(holdAssocs);
|
assertNotNull(holdAssocs);
|
||||||
assertEquals(1, holdAssocs.size());
|
assertEquals(1, holdAssocs.size());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Splitting transaction to fix onCreateNodePolicy issue where there was a node not found exception
|
||||||
|
doTestInTransaction(new Test<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void run() throws Exception
|
||||||
|
{
|
||||||
// Relinquish the first hold
|
// Relinquish the first hold
|
||||||
holdService.deleteHold(holdAssocs.iterator().next());
|
holdService.deleteHold(holdAssocs.iterator().next());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user