mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-1362: When a record folder is transferred the records should not have the review or edit review date actions
* including unit tests for the updated transfer evaluator git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@65499 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||||
*
|
*
|
||||||
* This file is part of Alfresco
|
* This file is part of Alfresco
|
||||||
*
|
*
|
||||||
@@ -27,29 +27,73 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Evaluates whether the node in question is transferring is either a transfer or accession.
|
||||||
|
*
|
||||||
* @author Roy Wetherall
|
* @author Roy Wetherall
|
||||||
*/
|
*/
|
||||||
public class TransferEvaluator extends BaseEvaluator
|
public class TransferEvaluator extends BaseEvaluator
|
||||||
{
|
{
|
||||||
|
/** indicates whether we are looking for accessions or transfers */
|
||||||
private boolean transferAccessionIndicator = false;
|
private boolean transferAccessionIndicator = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param transferAccessionIndicator true if accession, false otherwise
|
||||||
|
*/
|
||||||
public void setTransferAccessionIndicator(boolean transferAccessionIndicator)
|
public void setTransferAccessionIndicator(boolean transferAccessionIndicator)
|
||||||
{
|
{
|
||||||
this.transferAccessionIndicator = transferAccessionIndicator;
|
this.transferAccessionIndicator = transferAccessionIndicator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.alfresco.module.org_alfresco_module_rm.jscript.app.BaseEvaluator#evaluateImpl(org.alfresco.service.cmr.repository.NodeRef)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected boolean evaluateImpl(NodeRef nodeRef)
|
protected boolean evaluateImpl(NodeRef nodeRef)
|
||||||
{
|
{
|
||||||
|
boolean result = false;
|
||||||
|
|
||||||
|
NodeRef transfer = getTransferNodeRef(nodeRef);
|
||||||
|
if (transfer != null)
|
||||||
|
{
|
||||||
|
boolean actual = ((Boolean)nodeService.getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR)).booleanValue();
|
||||||
|
result = (actual == transferAccessionIndicator);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to get the transfer node reference.
|
||||||
|
* <p>
|
||||||
|
* Takes into account records in tranferred record folders.
|
||||||
|
*
|
||||||
|
* @param nodeRef node reference
|
||||||
|
* @return {@link NodeRef} transfer node
|
||||||
|
*/
|
||||||
|
private NodeRef getTransferNodeRef(NodeRef nodeRef)
|
||||||
|
{
|
||||||
|
NodeRef result = null;
|
||||||
|
|
||||||
List<ChildAssociationRef> parents = nodeService.getParentAssocs(nodeRef, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
List<ChildAssociationRef> parents = nodeService.getParentAssocs(nodeRef, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
if (parents.size() == 1)
|
if (parents.size() == 1)
|
||||||
{
|
{
|
||||||
boolean actual = ((Boolean)nodeService.getProperty(parents.get(0).getParentRef(), RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR)).booleanValue();
|
result = parents.get(0).getParentRef();
|
||||||
return (actual == transferAccessionIndicator);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return false;
|
if (recordService.isRecord(nodeRef))
|
||||||
|
{
|
||||||
|
for (NodeRef recordFolder : recordFolderService.getRecordFolders(nodeRef))
|
||||||
|
{
|
||||||
|
result = getTransferNodeRef(recordFolder);
|
||||||
|
if (result != null)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -185,7 +185,15 @@ public class TransferServiceImpl extends ServiceBaseImpl implements TransferServ
|
|||||||
setPDFIndicationFlag(transferNodeRef, nodeRef);
|
setPDFIndicationFlag(transferNodeRef, nodeRef);
|
||||||
|
|
||||||
// Set the transferring indicator aspect
|
// Set the transferring indicator aspect
|
||||||
nodeService.addAspect(nodeRef, ASPECT_TRANSFERRING, null);
|
nodeService.addAspect(nodeRef, ASPECT_TRANSFERRING, null);
|
||||||
|
if (isRecordFolder(nodeRef) == true)
|
||||||
|
{
|
||||||
|
// add the transferring indicator aspect to all the child records
|
||||||
|
for (NodeRef record : recordService.getRecords(nodeRef))
|
||||||
|
{
|
||||||
|
nodeService.addAspect(record, ASPECT_TRANSFERRING, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return transferNodeRef;
|
return transferNodeRef;
|
||||||
}
|
}
|
||||||
|
@@ -20,6 +20,7 @@ package org.alfresco.module.org_alfresco_module_rm;
|
|||||||
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.forms.RecordsManagementTypeFormFilterUnitTest;
|
import org.alfresco.module.org_alfresco_module_rm.forms.RecordsManagementTypeFormFilterUnitTest;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServiceImplUnitTest;
|
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServiceImplUnitTest;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.jscript.app.evaluator.TransferEvaluatorUnitTest;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordMetadataBootstrapUnitTest;
|
import org.alfresco.module.org_alfresco_module_rm.record.RecordMetadataBootstrapUnitTest;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordServiceImplUnitTest;
|
import org.alfresco.module.org_alfresco_module_rm.record.RecordServiceImplUnitTest;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -38,7 +39,8 @@ import org.junit.runners.Suite.SuiteClasses;
|
|||||||
RecordMetadataBootstrapUnitTest.class,
|
RecordMetadataBootstrapUnitTest.class,
|
||||||
RecordServiceImplUnitTest.class,
|
RecordServiceImplUnitTest.class,
|
||||||
RecordsManagementTypeFormFilterUnitTest.class,
|
RecordsManagementTypeFormFilterUnitTest.class,
|
||||||
HoldServiceImplUnitTest.class
|
HoldServiceImplUnitTest.class,
|
||||||
|
TransferEvaluatorUnitTest.class
|
||||||
})
|
})
|
||||||
public class AllUnitTestSuite
|
public class AllUnitTestSuite
|
||||||
{
|
{
|
||||||
|
@@ -18,19 +18,29 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.module.org_alfresco_module_rm;
|
package org.alfresco.module.org_alfresco_module_rm;
|
||||||
|
|
||||||
|
import static org.mockito.Matchers.any;
|
||||||
|
import static org.mockito.Matchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService;
|
import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
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.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
import org.alfresco.service.namespace.QNamePattern;
|
||||||
import org.alfresco.util.GUID;
|
import org.alfresco.util.GUID;
|
||||||
import org.alfresco.util.collections.CollectionUtils;
|
import org.alfresco.util.collections.CollectionUtils;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -46,6 +56,9 @@ public class BaseUnitTest implements RecordsManagementModel
|
|||||||
{
|
{
|
||||||
protected NodeRef filePlanComponent;
|
protected NodeRef filePlanComponent;
|
||||||
protected NodeRef filePlan;
|
protected NodeRef filePlan;
|
||||||
|
|
||||||
|
protected NodeRef recordFolder;
|
||||||
|
protected NodeRef record;
|
||||||
|
|
||||||
/** core service mocks */
|
/** core service mocks */
|
||||||
@Mock(name="nodeService") protected NodeService mockedNodeService;
|
@Mock(name="nodeService") protected NodeService mockedNodeService;
|
||||||
@@ -54,6 +67,8 @@ public class BaseUnitTest implements RecordsManagementModel
|
|||||||
@Mock(name="identifierService") protected IdentifierService mockedIdentifierService;
|
@Mock(name="identifierService") protected IdentifierService mockedIdentifierService;
|
||||||
|
|
||||||
@Mock(name="filePlanService") protected FilePlanService mockedFilePlanService;
|
@Mock(name="filePlanService") protected FilePlanService mockedFilePlanService;
|
||||||
|
@Mock(name="recordFolderService") protected RecordFolderService mockedRecordFolderService;
|
||||||
|
@Mock(name="recordService") protected RecordService mockedRecordService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test method setup
|
* Test method setup
|
||||||
@@ -71,6 +86,20 @@ public class BaseUnitTest implements RecordsManagementModel
|
|||||||
when(mockedNamespaceService.getNamespaceURI(RM_PREFIX)).thenReturn(RM_URI);
|
when(mockedNamespaceService.getNamespaceURI(RM_PREFIX)).thenReturn(RM_URI);
|
||||||
when(mockedNamespaceService.getPrefixes(RM_URI)).thenReturn(CollectionUtils.unmodifiableSet(RM_PREFIX));
|
when(mockedNamespaceService.getPrefixes(RM_URI)).thenReturn(CollectionUtils.unmodifiableSet(RM_PREFIX));
|
||||||
|
|
||||||
|
// setup record folder and record
|
||||||
|
recordFolder = generateRecordFolder();
|
||||||
|
doReturn(true).when(mockedRecordFolderService).isRecordFolder(recordFolder);
|
||||||
|
record = generateRecord();
|
||||||
|
doReturn(true).when(mockedRecordService).isRecord(record);
|
||||||
|
|
||||||
|
// set record as child of record folder
|
||||||
|
List<ChildAssociationRef> result = new ArrayList<ChildAssociationRef>(1);
|
||||||
|
result.add(new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, recordFolder, generateQName(), record, true, 1));
|
||||||
|
doReturn(result).when(mockedNodeService).getChildAssocs(eq(recordFolder), eq(ContentModel.ASSOC_CONTAINS), any(QNamePattern.class));
|
||||||
|
doReturn(result).when(mockedNodeService).getParentAssocs(record);
|
||||||
|
doReturn(Collections.singletonList(recordFolder)).when(mockedRecordFolderService).getRecordFolders(record);
|
||||||
|
doReturn(Collections.singletonList(record)).when(mockedRecordService).getRecords(recordFolder);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -42,19 +42,15 @@ import java.util.Map;
|
|||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.BaseUnitTest;
|
import org.alfresco.module.org_alfresco_module_rm.BaseUnitTest;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
|
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.service.namespace.QNamePattern;
|
|
||||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.Spy;
|
import org.mockito.Spy;
|
||||||
import org.mockito.invocation.InvocationOnMock;
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
@@ -74,12 +70,7 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
|
|||||||
|
|
||||||
protected NodeRef holdContainer;
|
protected NodeRef holdContainer;
|
||||||
protected NodeRef hold;
|
protected NodeRef hold;
|
||||||
protected NodeRef hold2;
|
protected NodeRef hold2;
|
||||||
protected NodeRef recordFolder;
|
|
||||||
protected NodeRef record;
|
|
||||||
|
|
||||||
@Mock(name="recordFolderService") protected RecordFolderService mockedRecordFolderService;
|
|
||||||
@Mock(name="recordService") protected RecordService mockedRecordService;
|
|
||||||
|
|
||||||
@Spy @InjectMocks HoldServiceImpl holdService;
|
@Spy @InjectMocks HoldServiceImpl holdService;
|
||||||
|
|
||||||
@@ -93,19 +84,11 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
|
|||||||
holdContainer = generateNodeRef(TYPE_HOLD_CONTAINER);
|
holdContainer = generateNodeRef(TYPE_HOLD_CONTAINER);
|
||||||
hold = generateNodeRef(TYPE_HOLD);
|
hold = generateNodeRef(TYPE_HOLD);
|
||||||
hold2 = generateNodeRef(TYPE_HOLD);
|
hold2 = generateNodeRef(TYPE_HOLD);
|
||||||
recordFolder = generateRecordFolder();
|
|
||||||
record = generateRecord();
|
|
||||||
|
|
||||||
// setup interactions
|
// setup interactions
|
||||||
doReturn(holdContainer).when(mockedFilePlanService).getHoldContainer(filePlan);
|
doReturn(holdContainer).when(mockedFilePlanService).getHoldContainer(filePlan);
|
||||||
|
|
||||||
// set record as child of record folder
|
|
||||||
List<ChildAssociationRef> result = new ArrayList<ChildAssociationRef>(1);
|
|
||||||
result.add(new ChildAssociationRef(ContentModel.ASSOC_CONTAINS, recordFolder, generateQName(), record, true, 1));
|
|
||||||
doReturn(result).when(mockedNodeService).getChildAssocs(eq(recordFolder), eq(ContentModel.ASSOC_CONTAINS), any(QNamePattern.class));
|
|
||||||
doReturn(result).when(mockedNodeService).getParentAssocs(record);
|
|
||||||
doReturn(Collections.singletonList(recordFolder)).when(mockedRecordFolderService).getRecordFolders(record);
|
|
||||||
doReturn(Collections.singletonList(record)).when(mockedRecordService).getRecords(recordFolder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -0,0 +1,170 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||||
|
*
|
||||||
|
* This file is part of Alfresco
|
||||||
|
*
|
||||||
|
* Alfresco is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Alfresco is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.alfresco.module.org_alfresco_module_rm.jscript.app.evaluator;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.times;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.BaseUnitTest;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
|
import org.mockito.Spy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transfer evaluator unit test.
|
||||||
|
*
|
||||||
|
* @author Roy Wetherall
|
||||||
|
*/
|
||||||
|
public class TransferEvaluatorUnitTest extends BaseUnitTest
|
||||||
|
{
|
||||||
|
private NodeRef transfer;
|
||||||
|
|
||||||
|
@Spy @InjectMocks TransferEvaluator transferEvaluator;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void before()
|
||||||
|
{
|
||||||
|
super.before();
|
||||||
|
|
||||||
|
// setup node references
|
||||||
|
transfer = generateNodeRef(TYPE_TRANSFER);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ChildAssociationRef> getParentAssocs(NodeRef provided)
|
||||||
|
{
|
||||||
|
List<ChildAssociationRef> result = new ArrayList<ChildAssociationRef>(1);
|
||||||
|
result.add(new ChildAssociationRef(ASSOC_TRANSFERRED, transfer, generateQName(), provided, false, 1));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isNotTransferringRecord()
|
||||||
|
{
|
||||||
|
// setup interactions
|
||||||
|
doReturn(Collections.emptyList()).when(mockedNodeService).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
|
||||||
|
// evaluate
|
||||||
|
assertFalse(transferEvaluator.evaluate(record));
|
||||||
|
|
||||||
|
// verify interactions
|
||||||
|
verify(mockedNodeService, times(1)).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
verify(mockedNodeService, never()).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
verify(mockedRecordFolderService, times(1)).getRecordFolders(record);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isTransferringWhenExpectingAccending()
|
||||||
|
{
|
||||||
|
// setup interactions
|
||||||
|
doReturn(Boolean.FALSE).when(mockedNodeService).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
doReturn(getParentAssocs(record)).when(mockedNodeService).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
transferEvaluator.setTransferAccessionIndicator(true);
|
||||||
|
|
||||||
|
// evaluate
|
||||||
|
assertFalse(transferEvaluator.evaluate(record));
|
||||||
|
|
||||||
|
// verify interactions
|
||||||
|
verify(mockedNodeService, times(1)).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
verify(mockedNodeService, times(1)).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
verify(mockedRecordFolderService, never()).getRecordFolders(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void transferringRecord()
|
||||||
|
{
|
||||||
|
// setup interactions
|
||||||
|
doReturn(Boolean.FALSE).when(mockedNodeService).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
doReturn(getParentAssocs(record)).when(mockedNodeService).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
|
||||||
|
// evaluate
|
||||||
|
assertTrue(transferEvaluator.evaluate(record));
|
||||||
|
|
||||||
|
// verify interactions
|
||||||
|
verify(mockedNodeService, times(1)).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
verify(mockedNodeService, times(1)).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
verify(mockedRecordFolderService, never()).getRecordFolders(record);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void transferringRecordFolder()
|
||||||
|
{
|
||||||
|
// setup interactions
|
||||||
|
doReturn(Boolean.FALSE).when(mockedNodeService).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
doReturn(getParentAssocs(recordFolder)).when(mockedNodeService).getParentAssocs(recordFolder, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
|
||||||
|
// evaluate
|
||||||
|
assertTrue(transferEvaluator.evaluate(recordFolder));
|
||||||
|
|
||||||
|
// verify interactions
|
||||||
|
verify(mockedNodeService, times(1)).getParentAssocs(recordFolder, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
verify(mockedNodeService, times(1)).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
verify(mockedRecordFolderService, never()).getRecordFolders(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void transferringRecordWithinRecordFolder()
|
||||||
|
{
|
||||||
|
// setup interactions
|
||||||
|
doReturn(Boolean.FALSE).when(mockedNodeService).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
doReturn(Collections.emptyList()).when(mockedNodeService).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
doReturn(getParentAssocs(recordFolder)).when(mockedNodeService).getParentAssocs(recordFolder, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
|
||||||
|
// evaluate
|
||||||
|
assertTrue(transferEvaluator.evaluate(record));
|
||||||
|
|
||||||
|
// verify interactions
|
||||||
|
verify(mockedNodeService, times(1)).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
verify(mockedNodeService, times(1)).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
verify(mockedRecordFolderService, times(1)).getRecordFolders(record);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void accendingRecord()
|
||||||
|
{
|
||||||
|
// setup interactions
|
||||||
|
doReturn(Boolean.TRUE).when(mockedNodeService).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
doReturn(getParentAssocs(record)).when(mockedNodeService).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
transferEvaluator.setTransferAccessionIndicator(true);
|
||||||
|
|
||||||
|
// evaluate
|
||||||
|
assertTrue(transferEvaluator.evaluate(record));
|
||||||
|
|
||||||
|
// verify interactions
|
||||||
|
verify(mockedNodeService, times(1)).getParentAssocs(record, RecordsManagementModel.ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
|
||||||
|
verify(mockedNodeService, times(1)).getProperty(transfer, RecordsManagementModel.PROP_TRANSFER_ACCESSION_INDICATOR);
|
||||||
|
verify(mockedRecordFolderService, never()).getRecordFolders(record);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -27,7 +27,6 @@ import org.alfresco.module.org_alfresco_module_rm.BaseUnitTest;
|
|||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit test for RecordMetadataBootstrap
|
* Unit test for RecordMetadataBootstrap
|
||||||
@@ -36,8 +35,6 @@ import org.mockito.Mock;
|
|||||||
*/
|
*/
|
||||||
public class RecordMetadataBootstrapUnitTest extends BaseUnitTest
|
public class RecordMetadataBootstrapUnitTest extends BaseUnitTest
|
||||||
{
|
{
|
||||||
@Mock(name="recordService") protected RecordService mockedRecordService;
|
|
||||||
|
|
||||||
@InjectMocks private RecordMetadataBootstrap bootstrap;
|
@InjectMocks private RecordMetadataBootstrap bootstrap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user