RM-2562: Deleting record from versions produces inconsistent behaviour

* Version history shows destroyed version despite meta-data shell of version record still being present (RM-2839)
 * Integration tests (RM-2842)

+review RM-223



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.3@119506 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2015-12-03 00:52:53 +00:00
parent f142e7647b
commit 716441a1d8
8 changed files with 192 additions and 211 deletions

View File

@@ -18,7 +18,6 @@
*/
package org.alfresco.module.org_alfresco_module_rm.model.rma.aspect;
import static org.alfresco.module.org_alfresco_module_rm.version.RecordableVersionModel.PROP_VERSIONED_NODEREF;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -53,7 +52,7 @@ public class VersionRecordAspectUnitTest extends BaseUnitTest
private @InjectMocks VersionRecordAspect versionRecordAspect;
/**
* given that version node ref is null
* given that there is no recorded version
* before delete of record
* then nothing happens
*/
@@ -62,7 +61,7 @@ public class VersionRecordAspectUnitTest extends BaseUnitTest
{
NodeRef nodeRef = generateNodeRef();
when(mockedNodeService.getProperty(nodeRef, PROP_VERSIONED_NODEREF))
when(mockedRecordableVersionService.getRecordedVersion(nodeRef))
.thenReturn(null);
versionRecordAspect.beforeDeleteNode(nodeRef);
@@ -70,89 +69,9 @@ public class VersionRecordAspectUnitTest extends BaseUnitTest
verify(mockedNodeService, never()).getProperty(nodeRef, RecordableVersionModel.PROP_VERSION_LABEL);
verify(mockedRecordableVersionService, never()).destroyRecordedVersion(any(Version.class));
}
/**
* given that version node ref is not null
* and version label is null
* before delete of record
* then nothing happens
*/
@Test
public void beforeDeleteNoVersionLabel()
{
NodeRef nodeRef = generateNodeRef();
NodeRef versionedNodeRef = generateNodeRef();
when(mockedNodeService.getProperty(nodeRef, PROP_VERSIONED_NODEREF))
.thenReturn(versionedNodeRef);
when(mockedNodeService.getProperty(nodeRef, RecordableVersionModel.PROP_VERSION_LABEL))
.thenReturn(null);
versionRecordAspect.beforeDeleteNode(nodeRef);
verify(mockedVersionService, never()).getVersionHistory(versionedNodeRef);
verify(mockedRecordableVersionService, never()).destroyRecordedVersion(any(Version.class));
}
/**
* given that version node ref is not null
* and version label is not null
* and version history is null
* before delete of record
* then nothing happens
*/
@Test
public void beforeDeleteNoVersionHistory()
{
NodeRef nodeRef = generateNodeRef();
NodeRef versionedNodeRef = generateNodeRef();
when(mockedNodeService.getProperty(nodeRef, PROP_VERSIONED_NODEREF))
.thenReturn(versionedNodeRef);
when(mockedNodeService.getProperty(nodeRef, RecordableVersionModel.PROP_VERSION_LABEL))
.thenReturn(generateText());
when(mockedVersionService.getVersionHistory(versionedNodeRef))
.thenReturn(null);
versionRecordAspect.beforeDeleteNode(nodeRef);
verify(mockedRecordableVersionService, never()).destroyRecordedVersion(any(Version.class));
}
/**
* given that version node ref is not null
* and version label is not null
* and version history is not null
* and the version relating to the version label is null
* before delete of record
* then nothing happens
*/
@Test
public void beforeDeleteNoVersionForLabel()
{
NodeRef nodeRef = generateNodeRef();
NodeRef versionedNodeRef = generateNodeRef();
String versionLabel = generateText();
when(mockedNodeService.getProperty(nodeRef, PROP_VERSIONED_NODEREF))
.thenReturn(versionedNodeRef);
when(mockedNodeService.getProperty(nodeRef, RecordableVersionModel.PROP_VERSION_LABEL))
.thenReturn(versionLabel);
when(mockedVersionService.getVersionHistory(versionedNodeRef))
.thenReturn(mockedVersionHistory);
when(mockedVersionHistory.getVersion(versionLabel))
.thenReturn(null);
versionRecordAspect.beforeDeleteNode(nodeRef);
verify(mockedRecordableVersionService, never()).destroyRecordedVersion(any(Version.class));
}
/**
* given that version node ref is not null
* and version label is not null
* and version history is not null
* and the version relating to the version label is not null
* given that there is a recorded version
* before delete of record
* then the version is marked as destroyed
*/
@@ -160,16 +79,8 @@ public class VersionRecordAspectUnitTest extends BaseUnitTest
public void beforeDeleteMarkVersionDestroyed()
{
NodeRef nodeRef = generateNodeRef();
NodeRef versionedNodeRef = generateNodeRef();
String versionLabel = generateText();
when(mockedNodeService.getProperty(nodeRef, PROP_VERSIONED_NODEREF))
.thenReturn(versionedNodeRef);
when(mockedNodeService.getProperty(nodeRef, RecordableVersionModel.PROP_VERSION_LABEL))
.thenReturn(versionLabel);
when(mockedVersionService.getVersionHistory(versionedNodeRef))
.thenReturn(mockedVersionHistory);
when(mockedVersionHistory.getVersion(versionLabel))
when(mockedRecordableVersionService.getRecordedVersion(nodeRef))
.thenReturn(mockedVersion);
versionRecordAspect.beforeDeleteNode(nodeRef);