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:
Ana Bozianu
2017-09-19 09:44:59 +03:00
9 changed files with 218 additions and 104 deletions

64
pom.xml
View File

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

View File

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

View File

@@ -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())

View File

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

View File

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

View File

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

View File

@@ -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);
@@ -87,12 +84,9 @@ public class RM1914Test extends BaseRMTestCase
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);
} }

View File

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

View File

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