mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-15 05:53:08 +00:00
97183 Tests for findItemsWithEdit and countItemsWithEdit methods of ItemServiceImpl
This commit is contained in:
@@ -1076,9 +1076,9 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds all Indexed Items where the current user has submit rights. If the user is an Admin,
|
* Finds all Indexed Items where the current user has edit rights. If the user is an Admin,
|
||||||
* this is all Indexed Items. Otherwise, it includes those Items where
|
* this is all Indexed Items. Otherwise, it includes those Items where
|
||||||
* an indexed "submit" policy lists either the eperson or one of the eperson's groups
|
* an indexed "edit" policy lists either the eperson or one of the eperson's groups
|
||||||
*
|
*
|
||||||
* @param context DSpace context
|
* @param context DSpace context
|
||||||
* @param discoverQuery
|
* @param discoverQuery
|
||||||
|
@@ -20,12 +20,15 @@ import java.util.stream.Collectors;
|
|||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.dspace.AbstractIntegrationTestWithDatabase;
|
import org.dspace.AbstractIntegrationTestWithDatabase;
|
||||||
import org.dspace.authorize.AuthorizeException;
|
import org.dspace.authorize.AuthorizeException;
|
||||||
|
import org.dspace.authorize.ResourcePolicy;
|
||||||
import org.dspace.builder.CollectionBuilder;
|
import org.dspace.builder.CollectionBuilder;
|
||||||
import org.dspace.builder.CommunityBuilder;
|
import org.dspace.builder.CommunityBuilder;
|
||||||
import org.dspace.builder.EntityTypeBuilder;
|
import org.dspace.builder.EntityTypeBuilder;
|
||||||
|
import org.dspace.builder.GroupBuilder;
|
||||||
import org.dspace.builder.ItemBuilder;
|
import org.dspace.builder.ItemBuilder;
|
||||||
import org.dspace.builder.RelationshipBuilder;
|
import org.dspace.builder.RelationshipBuilder;
|
||||||
import org.dspace.builder.RelationshipTypeBuilder;
|
import org.dspace.builder.RelationshipTypeBuilder;
|
||||||
|
import org.dspace.builder.ResourcePolicyBuilder;
|
||||||
import org.dspace.content.Collection;
|
import org.dspace.content.Collection;
|
||||||
import org.dspace.content.Community;
|
import org.dspace.content.Community;
|
||||||
import org.dspace.content.EntityType;
|
import org.dspace.content.EntityType;
|
||||||
@@ -35,6 +38,8 @@ import org.dspace.content.Relationship;
|
|||||||
import org.dspace.content.RelationshipType;
|
import org.dspace.content.RelationshipType;
|
||||||
import org.dspace.content.WorkspaceItem;
|
import org.dspace.content.WorkspaceItem;
|
||||||
import org.dspace.content.factory.ContentServiceFactory;
|
import org.dspace.content.factory.ContentServiceFactory;
|
||||||
|
import org.dspace.core.Constants;
|
||||||
|
import org.dspace.eperson.Group;
|
||||||
import org.dspace.versioning.Version;
|
import org.dspace.versioning.Version;
|
||||||
import org.dspace.versioning.factory.VersionServiceFactory;
|
import org.dspace.versioning.factory.VersionServiceFactory;
|
||||||
import org.dspace.versioning.service.VersioningService;
|
import org.dspace.versioning.service.VersioningService;
|
||||||
@@ -473,6 +478,82 @@ public class ItemServiceTest extends AbstractIntegrationTestWithDatabase {
|
|||||||
context.restoreAuthSystemState();
|
context.restoreAuthSystemState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindItemsWithEditNoRights() throws Exception {
|
||||||
|
context.setCurrentUser(eperson);
|
||||||
|
List<Item> result = itemService.findItemsWithEdit(context, 0, 10);
|
||||||
|
int count = itemService.countItemsWithEdit(context);
|
||||||
|
assertThat(result.size(), equalTo(0));
|
||||||
|
assertThat(count, equalTo(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindAndCountItemsWithEditEPerson() throws Exception {
|
||||||
|
ResourcePolicy rp = ResourcePolicyBuilder.createResourcePolicy(context)
|
||||||
|
.withUser(eperson)
|
||||||
|
.withDspaceObject(item)
|
||||||
|
.withAction(Constants.WRITE)
|
||||||
|
.build();
|
||||||
|
context.setCurrentUser(eperson);
|
||||||
|
List<Item> result = itemService.findItemsWithEdit(context, 0, 10);
|
||||||
|
int count = itemService.countItemsWithEdit(context);
|
||||||
|
assertThat(result.size(), equalTo(1));
|
||||||
|
assertThat(count, equalTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindAndCountItemsWithAdminEPerson() throws Exception {
|
||||||
|
ResourcePolicy rp = ResourcePolicyBuilder.createResourcePolicy(context)
|
||||||
|
.withUser(eperson)
|
||||||
|
.withDspaceObject(item)
|
||||||
|
.withAction(Constants.ADMIN)
|
||||||
|
.build();
|
||||||
|
context.setCurrentUser(eperson);
|
||||||
|
List<Item> result = itemService.findItemsWithEdit(context, 0, 10);
|
||||||
|
int count = itemService.countItemsWithEdit(context);
|
||||||
|
assertThat(result.size(), equalTo(1));
|
||||||
|
assertThat(count, equalTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindAndCountItemsWithEditGroup() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
Group group = GroupBuilder.createGroup(context)
|
||||||
|
.addMember(eperson)
|
||||||
|
.build();
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
|
||||||
|
ResourcePolicy rp = ResourcePolicyBuilder.createResourcePolicy(context)
|
||||||
|
.withGroup(group)
|
||||||
|
.withDspaceObject(item)
|
||||||
|
.withAction(Constants.WRITE)
|
||||||
|
.build();
|
||||||
|
context.setCurrentUser(eperson);
|
||||||
|
List<Item> result = itemService.findItemsWithEdit(context, 0, 10);
|
||||||
|
int count = itemService.countItemsWithEdit(context);
|
||||||
|
assertThat(result.size(), equalTo(1));
|
||||||
|
assertThat(count, equalTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindAndCountItemsWithAdminGroup() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
Group group = GroupBuilder.createGroup(context)
|
||||||
|
.addMember(eperson)
|
||||||
|
.build();
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
|
||||||
|
ResourcePolicy rp = ResourcePolicyBuilder.createResourcePolicy(context)
|
||||||
|
.withGroup(group)
|
||||||
|
.withDspaceObject(item)
|
||||||
|
.withAction(Constants.ADMIN)
|
||||||
|
.build();
|
||||||
|
context.setCurrentUser(eperson);
|
||||||
|
List<Item> result = itemService.findItemsWithEdit(context, 0, 10);
|
||||||
|
int count = itemService.countItemsWithEdit(context);
|
||||||
|
assertThat(result.size(), equalTo(1));
|
||||||
|
assertThat(count, equalTo(1));
|
||||||
|
}
|
||||||
private void assertMetadataValue(String authorQualifier, String contributorElement, String dcSchema, String value,
|
private void assertMetadataValue(String authorQualifier, String contributorElement, String dcSchema, String value,
|
||||||
String authority, int place, MetadataValue metadataValue) {
|
String authority, int place, MetadataValue metadataValue) {
|
||||||
assertThat(metadataValue.getValue(), equalTo(value));
|
assertThat(metadataValue.getValue(), equalTo(value));
|
||||||
|
Reference in New Issue
Block a user