mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-08 10:34:25 +00:00
88061: Verify modified relationships on new version of item before item install
This commit is contained in:
@@ -506,95 +506,6 @@ public class VersioningWithRelationshipsTest extends AbstractIntegrationTestWith
|
|||||||
Item newPublication = newVersion.getItem();
|
Item newPublication = newVersion.getItem();
|
||||||
assertNotSame(originalPublication, newPublication);
|
assertNotSame(originalPublication, newPublication);
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////
|
|
||||||
// verify the relationships of all 5 items (excludeNonLatest = true) //
|
|
||||||
///////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, originalPublication, -1, -1, false, true),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, person1, -1, -1, false, true),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, project1, -1, -1, false, true),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, orgUnit1, -1, -1, false, true),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, newPublication, -1, -1, false, true),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(newPublication, isAuthorOfPublication, person1, LatestVersionStatus.RIGHT_ONLY),
|
|
||||||
isRelationship(newPublication, isProjectOfPublication, project1, LatestVersionStatus.RIGHT_ONLY),
|
|
||||||
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.RIGHT_ONLY)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
// verify the relationships of all 5 items (excludeNonLatest = false) //
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, originalPublication, -1, -1, false, false),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, person1, -1, -1, false, false),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(newPublication, isAuthorOfPublication, person1, LatestVersionStatus.RIGHT_ONLY)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, project1, -1, -1, false, false),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(newPublication, isProjectOfPublication, project1, LatestVersionStatus.RIGHT_ONLY)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, orgUnit1, -1, -1, false, false),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH),
|
|
||||||
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.RIGHT_ONLY)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
relationshipService.findByItem(context, newPublication, -1, -1, false, false),
|
|
||||||
containsInAnyOrder(List.of(
|
|
||||||
isRelationship(newPublication, isAuthorOfPublication, person1, LatestVersionStatus.RIGHT_ONLY),
|
|
||||||
isRelationship(newPublication, isProjectOfPublication, project1, LatestVersionStatus.RIGHT_ONLY),
|
|
||||||
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.RIGHT_ONLY)
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
// modify relationships on new publication //
|
// modify relationships on new publication //
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
@@ -627,6 +538,127 @@ public class VersioningWithRelationshipsTest extends AbstractIntegrationTestWith
|
|||||||
RelationshipBuilder.createRelationshipBuilder(context, newPublication, orgUnit2, isOrgUnitOfPublication)
|
RelationshipBuilder.createRelationshipBuilder(context, newPublication, orgUnit2, isOrgUnitOfPublication)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
// verify the relationships of all 7 items (excludeNonLatest = true) //
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, originalPublication, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, person1, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, person2, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
// NOTE: BOTH because new relationship
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person2, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, project1, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, orgUnit1, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, orgUnit2, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
// NOTE: BOTH because new relationship
|
||||||
|
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit2, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, newPublication, -1, -1, false, true),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person1, LatestVersionStatus.RIGHT_ONLY),
|
||||||
|
// NOTE: BOTH because new relationship
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person2, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit2, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
// verify the relationships of all 7 items (excludeNonLatest = false) //
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, originalPublication, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, person1, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isAuthorOfPublication, person1, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person1, LatestVersionStatus.RIGHT_ONLY)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, person2, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
// NOTE: BOTH because new relationship
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person2, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, project1, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isProjectOfPublication, project1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, orgUnit1, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(originalPublication, isOrgUnitOfPublication, orgUnit1, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, orgUnit2, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
// NOTE: BOTH because new relationship
|
||||||
|
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit2, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(
|
||||||
|
relationshipService.findByItem(context, newPublication, -1, -1, false, false),
|
||||||
|
containsInAnyOrder(List.of(
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person1, LatestVersionStatus.RIGHT_ONLY),
|
||||||
|
// NOTE: BOTH because new relationship
|
||||||
|
isRelationship(newPublication, isAuthorOfPublication, person2, LatestVersionStatus.BOTH),
|
||||||
|
isRelationship(newPublication, isOrgUnitOfPublication, orgUnit2, LatestVersionStatus.BOTH)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
// do item install on new publication //
|
// do item install on new publication //
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
|
Reference in New Issue
Block a user