RM-4619 - added the fileplan component check back but in different place

This commit is contained in:
Ana Bozianu
2017-01-30 12:54:37 +02:00
parent c52e2a7cf5
commit abfc606428
6 changed files with 48 additions and 25 deletions

View File

@@ -93,7 +93,8 @@
<bean id="records" class="org.alfresco.rm.rest.api.impl.RecordsImpl"> <bean id="records" class="org.alfresco.rm.rest.api.impl.RecordsImpl">
<property name="recordService" ref="RecordService"/> <property name="recordService" ref="RecordService"/>
<property name="filePlanService" ref="FilePlanService"/> <property name="filePlanService" ref="FilePlanService"/>
<property name="nodes" ref="rm.nodes"/> <property name="rmNodes" ref="rm.nodes"/>
<property name="nodes" ref="nodes"/>
<property name="nodeService" ref="NodeService"/> <property name="nodeService" ref="NodeService"/>
<property name="fileFolderService" ref="FileFolderService"/> <property name="fileFolderService" ref="FileFolderService"/>
<property name="dictionaryService" ref="DictionaryService"/> <property name="dictionaryService" ref="DictionaryService"/>

View File

@@ -61,6 +61,7 @@ import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.util.Pair; import org.alfresco.util.Pair;
import org.alfresco.util.ParameterCheck; import org.alfresco.util.ParameterCheck;
@@ -277,6 +278,11 @@ public class RMNodesImpl extends NodesImpl implements RMNodes
} }
} }
if(!filePlanService.isFilePlanComponent(new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, nodeId)))
{
throw new InvalidParameterException("The provided node is not a fileplan component");
}
return super.validateNode(nodeId); return super.validateNode(nodeId);
} }

View File

@@ -36,6 +36,7 @@ import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.util.AuthenticationUtil; import org.alfresco.module.org_alfresco_module_rm.util.AuthenticationUtil;
import org.alfresco.repo.node.integrity.IntegrityException; import org.alfresco.repo.node.integrity.IntegrityException;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.api.model.Node; import org.alfresco.rest.api.model.Node;
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException; import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
@@ -67,7 +68,8 @@ public class RecordsImpl implements Records, InitializingBean
protected FileFolderService fileFolderService; protected FileFolderService fileFolderService;
protected DictionaryService dictionaryService; protected DictionaryService dictionaryService;
protected AuthenticationUtil authenticationUtil; protected AuthenticationUtil authenticationUtil;
protected RMNodes nodes; protected RMNodes rmNodes;
protected Nodes nodes;
public void setRecordService(RecordService recordService) public void setRecordService(RecordService recordService)
{ {
@@ -99,7 +101,12 @@ public class RecordsImpl implements Records, InitializingBean
this.authenticationUtil = authenticationUtil; this.authenticationUtil = authenticationUtil;
} }
public void setNodes(RMNodes nodes) public void setRmNodes(RMNodes rmNodes)
{
this.rmNodes = rmNodes;
}
public void setNodes(Nodes nodes)
{ {
this.nodes = nodes; this.nodes = nodes;
} }
@@ -108,6 +115,7 @@ public class RecordsImpl implements Records, InitializingBean
public Node declareFileAsRecord(String fileId, Parameters parameters) public Node declareFileAsRecord(String fileId, Parameters parameters)
{ {
// Get file to be declared // Get file to be declared
// Use nodes instead of rmNodes because the file is not a record yet
NodeRef fileNodeRef = nodes.validateNode(fileId) ; NodeRef fileNodeRef = nodes.validateNode(fileId) ;
// Get fileplan // Get fileplan
@@ -127,7 +135,7 @@ public class RecordsImpl implements Records, InitializingBean
recordService.createRecord(filePlan, fileNodeRef, !hideRecord); recordService.createRecord(filePlan, fileNodeRef, !hideRecord);
// Get information about the new record // Get information about the new record
return nodes.getFolderOrDocument(fileId, parameters); return rmNodes.getFolderOrDocument(fileId, parameters);
} }
@Override @Override
@@ -139,7 +147,7 @@ public class RecordsImpl implements Records, InitializingBean
} }
// Get record // Get record
NodeRef record = nodes.validateNode(recordId); NodeRef record = rmNodes.validateNode(recordId);
// Get record folder to file/link the record to // Get record folder to file/link the record to
String parentContainerId = target.getTargetParentId(); String parentContainerId = target.getTargetParentId();
@@ -155,7 +163,7 @@ public class RecordsImpl implements Records, InitializingBean
} }
}); });
} }
NodeRef parentRecordFolder = nodes.getOrCreatePath(parentContainerId, target.getRelativePath(), ContentModel.TYPE_CONTENT); NodeRef parentRecordFolder = rmNodes.getOrCreatePath(parentContainerId, target.getRelativePath(), ContentModel.TYPE_CONTENT);
// Check if the target is a record folder // Check if the target is a record folder
if(!dictionaryService.isSubClass(nodeService.getType(parentRecordFolder), RecordsManagementModel.TYPE_RECORD_FOLDER)) if(!dictionaryService.isSubClass(nodeService.getType(parentRecordFolder), RecordsManagementModel.TYPE_RECORD_FOLDER))
@@ -186,7 +194,7 @@ public class RecordsImpl implements Records, InitializingBean
} }
// Get the record info // Get the record info
return nodes.getFolderOrDocument(recordId, parameters); return rmNodes.getFolderOrDocument(recordId, parameters);
} }
@Override @Override
@@ -194,7 +202,7 @@ public class RecordsImpl implements Records, InitializingBean
{ {
ParameterCheck.mandatory("recordService", recordService); ParameterCheck.mandatory("recordService", recordService);
ParameterCheck.mandatory("filePlanService", filePlanService); ParameterCheck.mandatory("filePlanService", filePlanService);
ParameterCheck.mandatory("nodes", nodes); ParameterCheck.mandatory("nodes", rmNodes);
ParameterCheck.mandatory("nodeService", nodeService); ParameterCheck.mandatory("nodeService", nodeService);
ParameterCheck.mandatory("fileFolderService", fileFolderService); ParameterCheck.mandatory("fileFolderService", fileFolderService);
ParameterCheck.mandatory("dictionaryService", dictionaryService); ParameterCheck.mandatory("dictionaryService", dictionaryService);

View File

@@ -85,6 +85,7 @@ public class RMNodesImplRelativePathUnitTest extends BaseUnitTest
* Given any parent node * Given any parent node
*/ */
NodeRef parentNode = AlfMock.generateNodeRef(mockedNodeService); NodeRef parentNode = AlfMock.generateNodeRef(mockedNodeService);
when(mockedFilePlanService.isFilePlanComponent(parentNode)).thenReturn(true);
/* /*
* When trying to create a node in the parent node with no relative path * When trying to create a node in the parent node with no relative path
@@ -112,6 +113,7 @@ public class RMNodesImplRelativePathUnitTest extends BaseUnitTest
* Given a parent node and an existing path c1/f1 under it * Given a parent node and an existing path c1/f1 under it
*/ */
NodeRef parentNode = AlfMock.generateNodeRef(mockedNodeService); NodeRef parentNode = AlfMock.generateNodeRef(mockedNodeService);
when(mockedFilePlanService.isFilePlanComponent(parentNode)).thenReturn(true);
String category = "c1"; String category = "c1";
NodeRef categoryNode = AlfMock.generateNodeRef(mockedNodeService); NodeRef categoryNode = AlfMock.generateNodeRef(mockedNodeService);
@@ -154,6 +156,7 @@ public class RMNodesImplRelativePathUnitTest extends BaseUnitTest
String category1 = "c1"; String category1 = "c1";
NodeRef categoryNode1 = AlfMock.generateNodeRef(mockedNodeService); NodeRef categoryNode1 = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodeService.getChildByName(fileplanNodeRef, ContentModel.ASSOC_CONTAINS, category1)).thenReturn(categoryNode1); when(mockedNodeService.getChildByName(fileplanNodeRef, ContentModel.ASSOC_CONTAINS, category1)).thenReturn(categoryNode1);
when(mockedFilePlanService.isFilePlanComponent(fileplanNodeRef)).thenReturn(true);
// create c2 // create c2
String category2 = "c2"; String category2 = "c2";
@@ -200,6 +203,7 @@ public class RMNodesImplRelativePathUnitTest extends BaseUnitTest
*/ */
NodeRef unfiledRecordContainer = AlfMock.generateNodeRef(mockedNodeService); NodeRef unfiledRecordContainer = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodeService.getType(unfiledRecordContainer)).thenReturn(TYPE_UNFILED_RECORD_CONTAINER); when(mockedNodeService.getType(unfiledRecordContainer)).thenReturn(TYPE_UNFILED_RECORD_CONTAINER);
when(mockedFilePlanService.isFilePlanComponent(unfiledRecordContainer)).thenReturn(true);
/* /*
* When trying to create a content node in the relative path f1/f2/f3 * When trying to create a content node in the relative path f1/f2/f3
@@ -255,6 +259,7 @@ public class RMNodesImplRelativePathUnitTest extends BaseUnitTest
*/ */
NodeRef fileplanNodeRef = AlfMock.generateNodeRef(mockedNodeService); NodeRef fileplanNodeRef = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodeService.getType(fileplanNodeRef)).thenReturn(TYPE_FILE_PLAN); when(mockedNodeService.getType(fileplanNodeRef)).thenReturn(TYPE_FILE_PLAN);
when(mockedFilePlanService.isFilePlanComponent(fileplanNodeRef)).thenReturn(true);
/* /*
* When trying to create a folder node in the relative path c1/c2/c3 * When trying to create a folder node in the relative path c1/c2/c3

View File

@@ -318,10 +318,9 @@ public class RMNodesImplUnitTest extends BaseUnitTest
setupCompanyHomeAndPrimaryParent(nodeRef); setupCompanyHomeAndPrimaryParent(nodeRef);
when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(false); when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(false);
List<String> includeParamList = new ArrayList<String>();
try try
{ {
rmNodesImpl.getFolderOrDocument(nodeRef, null, null, includeParamList, null); rmNodesImpl.validateNode(nodeRef.getId());
fail("Expected exception since the requested node is not a fileplan component."); fail("Expected exception since the requested node is not a fileplan component.");
} }
catch(InvalidParameterException ex) catch(InvalidParameterException ex)
@@ -628,6 +627,7 @@ public class RMNodesImplUnitTest extends BaseUnitTest
public void testValidateNode() throws Exception public void testValidateNode() throws Exception
{ {
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService); NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
when(mockedFilePlanService.isFilePlanComponent(nodeRef)).thenReturn(true);
NodeRef validateOrLookupNode = rmNodesImpl.validateNode(nodeRef.getId()); NodeRef validateOrLookupNode = rmNodesImpl.validateNode(nodeRef.getId());
assertEquals(nodeRef, validateOrLookupNode); assertEquals(nodeRef, validateOrLookupNode);
} }

View File

@@ -40,6 +40,7 @@ import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.test.util.AlfMock; import org.alfresco.module.org_alfresco_module_rm.test.util.AlfMock;
import org.alfresco.module.org_alfresco_module_rm.test.util.MockAuthenticationUtilHelper; import org.alfresco.module.org_alfresco_module_rm.test.util.MockAuthenticationUtilHelper;
import org.alfresco.module.org_alfresco_module_rm.util.AuthenticationUtil; import org.alfresco.module.org_alfresco_module_rm.util.AuthenticationUtil;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.alfresco.rm.rest.api.RMNodes; import org.alfresco.rm.rest.api.RMNodes;
import org.alfresco.rm.rest.api.Records; import org.alfresco.rm.rest.api.Records;
@@ -77,7 +78,9 @@ public class RecordsImplUnitTest
@Mock @Mock
protected AuthenticationUtil mockedAuthenticationUtil; protected AuthenticationUtil mockedAuthenticationUtil;
@Mock @Mock
protected RMNodes mockedNodes; protected RMNodes mockedRMNodes;
@Mock
protected Nodes mockedNodes;
@InjectMocks @InjectMocks
private RecordsImpl recordsImpl; private RecordsImpl recordsImpl;
@@ -119,7 +122,7 @@ public class RecordsImplUnitTest
* Then a record is created under the existing fileplan from the provided file * Then a record is created under the existing fileplan from the provided file
*/ */
verify(mockedRecordService).createRecord(fileplan, mockedFile, false); verify(mockedRecordService).createRecord(fileplan, mockedFile, false);
verify(mockedNodes).getFolderOrDocument(mockedFile.getId(), params); verify(mockedRMNodes).getFolderOrDocument(mockedFile.getId(), params);
} }
/** /**
@@ -134,7 +137,7 @@ public class RecordsImplUnitTest
* Given a record * Given a record
*/ */
NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord); when(mockedRMNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord);
/* /*
* When trying to filing a record providing a blank destination path * When trying to filing a record providing a blank destination path
@@ -157,7 +160,7 @@ public class RecordsImplUnitTest
*/ */
// mock the record to file // mock the record to file
NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord); when(mockedRMNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord);
// mock the current primary parent // mock the current primary parent
NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService);
@@ -169,7 +172,7 @@ public class RecordsImplUnitTest
// mock the target record folder to file the record into // mock the target record folder to file the record into
NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder); when(mockedRMNodes.getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder);
when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER); when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER);
when(mockedDictionaryService.isSubClass(TYPE_RECORD_FOLDER, TYPE_RECORD_FOLDER)).thenReturn(true); when(mockedDictionaryService.isSubClass(TYPE_RECORD_FOLDER, TYPE_RECORD_FOLDER)).thenReturn(true);
@@ -185,7 +188,7 @@ public class RecordsImplUnitTest
/* /*
* Then the record is moved under the destination folder * Then the record is moved under the destination folder
*/ */
verify(mockedNodes).getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT); verify(mockedRMNodes).getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT);
verify(mockedFileFolderService).moveFrom(mockedRecord, mockedPrimaryParent, mockedTargetRecordFolder, null); verify(mockedFileFolderService).moveFrom(mockedRecord, mockedPrimaryParent, mockedTargetRecordFolder, null);
} }
@@ -203,7 +206,7 @@ public class RecordsImplUnitTest
*/ */
// mock the record to file // mock the record to file
NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord); when(mockedRMNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord);
// mock the current primary parent // mock the current primary parent
NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService);
@@ -220,7 +223,7 @@ public class RecordsImplUnitTest
// mock the target record folder to file the record into // mock the target record folder to file the record into
String relativePath = "category/recordFolder"; String relativePath = "category/recordFolder";
NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.getOrCreatePath(fileplan.getId(), relativePath, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder); when(mockedRMNodes.getOrCreatePath(fileplan.getId(), relativePath, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder);
when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER); when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER);
when(mockedDictionaryService.isSubClass(TYPE_RECORD_FOLDER, TYPE_RECORD_FOLDER)).thenReturn(true); when(mockedDictionaryService.isSubClass(TYPE_RECORD_FOLDER, TYPE_RECORD_FOLDER)).thenReturn(true);
@@ -236,7 +239,7 @@ public class RecordsImplUnitTest
/* /*
* Then the record is moved under the destination folder relative to the fileplan * Then the record is moved under the destination folder relative to the fileplan
*/ */
verify(mockedNodes).getOrCreatePath(fileplan.getId(), relativePath, TYPE_CONTENT); verify(mockedRMNodes).getOrCreatePath(fileplan.getId(), relativePath, TYPE_CONTENT);
verify(mockedFileFolderService).moveFrom(mockedRecord, mockedPrimaryParent, mockedTargetRecordFolder, null); verify(mockedFileFolderService).moveFrom(mockedRecord, mockedPrimaryParent, mockedTargetRecordFolder, null);
} }
@@ -254,7 +257,7 @@ public class RecordsImplUnitTest
*/ */
// mock the record to file // mock the record to file
NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord); when(mockedRMNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord);
// mock the current primary parent // mock the current primary parent
NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService);
@@ -270,7 +273,7 @@ public class RecordsImplUnitTest
// mock the target record folder to file the record into // mock the target record folder to file the record into
String relativePath = "category/recordFolder"; String relativePath = "category/recordFolder";
NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.getOrCreatePath(mockedTargetCategory.getId(), relativePath, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder); when(mockedRMNodes.getOrCreatePath(mockedTargetCategory.getId(), relativePath, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder);
when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER); when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER);
when(mockedDictionaryService.isSubClass(TYPE_RECORD_FOLDER, TYPE_RECORD_FOLDER)).thenReturn(true); when(mockedDictionaryService.isSubClass(TYPE_RECORD_FOLDER, TYPE_RECORD_FOLDER)).thenReturn(true);
@@ -287,7 +290,7 @@ public class RecordsImplUnitTest
/* /*
* Then the record is moved under the correct destination folder * Then the record is moved under the correct destination folder
*/ */
verify(mockedNodes).getOrCreatePath(mockedTargetCategory.getId(), relativePath, TYPE_CONTENT); verify(mockedRMNodes).getOrCreatePath(mockedTargetCategory.getId(), relativePath, TYPE_CONTENT);
verify(mockedFileFolderService).moveFrom(mockedRecord, mockedPrimaryParent, mockedTargetRecordFolder, null); verify(mockedFileFolderService).moveFrom(mockedRecord, mockedPrimaryParent, mockedTargetRecordFolder, null);
} }
@@ -304,7 +307,7 @@ public class RecordsImplUnitTest
*/ */
// mock the record to link // mock the record to link
NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedRecord = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord); when(mockedRMNodes.validateNode(mockedRecord.getId())).thenReturn(mockedRecord);
// mock the current primary parent // mock the current primary parent
NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedPrimaryParent = AlfMock.generateNodeRef(mockedNodeService);
@@ -316,7 +319,7 @@ public class RecordsImplUnitTest
// mock the target record folder to file the record into // mock the target record folder to file the record into
NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService); NodeRef mockedTargetRecordFolder = AlfMock.generateNodeRef(mockedNodeService);
when(mockedNodes.getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder); when(mockedRMNodes.getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT)).thenReturn(mockedTargetRecordFolder);
when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER); when(mockedNodeService.getType(mockedTargetRecordFolder)).thenReturn(TYPE_RECORD_FOLDER);
/* /*
@@ -331,7 +334,7 @@ public class RecordsImplUnitTest
/* /*
* Then the record is linked to the destination folder * Then the record is linked to the destination folder
*/ */
verify(mockedNodes).getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT); verify(mockedRMNodes).getOrCreatePath(mockedTargetRecordFolder.getId(), null, TYPE_CONTENT);
verify(mockedRecordService).link(mockedRecord, mockedTargetRecordFolder); verify(mockedRecordService).link(mockedRecord, mockedTargetRecordFolder);
} }
} }