mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
DS-4224 Improve related test and add additional test
This commit is contained in:
@@ -320,6 +320,12 @@ public class RelationshipServiceImplTest {
|
|||||||
Mockito.verify(relationshipDAO).save(context, relationship);
|
Mockito.verify(relationshipDAO).save(context, relationship);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCountTotal() throws Exception {
|
||||||
|
when(relationshipDAO.countRows(context)).thenReturn(0);
|
||||||
|
assertEquals("TestCountTotal 1", 0, relationshipService.countTotal(context));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method that returns a configured Relationship
|
* Helper method that returns a configured Relationship
|
||||||
* @param leftItem Relationship's left item
|
* @param leftItem Relationship's left item
|
||||||
|
@@ -0,0 +1,153 @@
|
|||||||
|
/**
|
||||||
|
* The contents of this file are subject to the license and copyright
|
||||||
|
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||||
|
* tree and available online at
|
||||||
|
*
|
||||||
|
* http://www.dspace.org/license/
|
||||||
|
*/
|
||||||
|
package org.dspace.content.dao;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.dspace.AbstractIntegrationTest;
|
||||||
|
import org.dspace.content.Collection;
|
||||||
|
import org.dspace.content.Community;
|
||||||
|
import org.dspace.content.EntityType;
|
||||||
|
import org.dspace.content.Item;
|
||||||
|
import org.dspace.content.Relationship;
|
||||||
|
import org.dspace.content.RelationshipType;
|
||||||
|
import org.dspace.content.WorkspaceItem;
|
||||||
|
import org.dspace.content.factory.ContentServiceFactory;
|
||||||
|
import org.dspace.content.service.CollectionService;
|
||||||
|
import org.dspace.content.service.CommunityService;
|
||||||
|
import org.dspace.content.service.EntityTypeService;
|
||||||
|
import org.dspace.content.service.InstallItemService;
|
||||||
|
import org.dspace.content.service.ItemService;
|
||||||
|
import org.dspace.content.service.RelationshipService;
|
||||||
|
import org.dspace.content.service.RelationshipTypeService;
|
||||||
|
import org.dspace.content.service.WorkspaceItemService;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by: Andrew Wood
|
||||||
|
* Date: 20 Sep 2019
|
||||||
|
*/
|
||||||
|
public class RelationshipDAOImplTest extends AbstractIntegrationTest {
|
||||||
|
|
||||||
|
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(RelationshipDAOImplTest.class);
|
||||||
|
|
||||||
|
private Relationship relationship;
|
||||||
|
|
||||||
|
private Item itemOne;
|
||||||
|
|
||||||
|
private Item itemTwo;
|
||||||
|
|
||||||
|
private Collection collection;
|
||||||
|
|
||||||
|
private Community owningCommunity;
|
||||||
|
|
||||||
|
private RelationshipType relationshipType;
|
||||||
|
|
||||||
|
private List<Relationship> relationshipsList = new ArrayList<>();
|
||||||
|
|
||||||
|
private EntityType entityTypeOne;
|
||||||
|
|
||||||
|
private EntityType entityTypeTwo;
|
||||||
|
|
||||||
|
protected CommunityService communityService = ContentServiceFactory.getInstance().getCommunityService();
|
||||||
|
protected CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService();
|
||||||
|
protected ItemService itemService = ContentServiceFactory.getInstance().getItemService();
|
||||||
|
protected InstallItemService installItemService = ContentServiceFactory.getInstance().getInstallItemService();
|
||||||
|
protected WorkspaceItemService workspaceItemService = ContentServiceFactory.getInstance().getWorkspaceItemService();
|
||||||
|
protected RelationshipTypeService relationshipTypeService =
|
||||||
|
ContentServiceFactory.getInstance().getRelationshipTypeService();
|
||||||
|
protected RelationshipService relationshipService = ContentServiceFactory.getInstance().getRelationshipService();
|
||||||
|
protected EntityTypeService entityTypeService = ContentServiceFactory.getInstance().getEntityTypeService();
|
||||||
|
|
||||||
|
@Before
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
try {
|
||||||
|
// Create objects for testing
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
owningCommunity = communityService.create(null, context);
|
||||||
|
collection = collectionService.create(context, owningCommunity);
|
||||||
|
WorkspaceItem workspaceItem = workspaceItemService.create(context, collection, false);
|
||||||
|
WorkspaceItem workspaceItemTwo = workspaceItemService.create(context, collection, false);
|
||||||
|
itemOne = installItemService.installItem(context, workspaceItem);
|
||||||
|
itemTwo = installItemService.installItem(context, workspaceItemTwo);
|
||||||
|
itemService.addMetadata(context, itemOne, "relationship", "type", null, Item.ANY, "Publication");
|
||||||
|
itemService.addMetadata(context, itemTwo, "relationship", "type", null, Item.ANY, "Person");
|
||||||
|
itemService.update(context, itemOne);
|
||||||
|
itemService.update(context, itemTwo);
|
||||||
|
entityTypeOne = entityTypeService.create(context, "Person");
|
||||||
|
entityTypeTwo = entityTypeService.create(context, "Publication");
|
||||||
|
relationshipType = relationshipTypeService.create(context, entityTypeTwo, entityTypeOne,
|
||||||
|
"isAuthorOfPublication", "isPublicationOfAuthor",0,10,0,10);
|
||||||
|
relationship = relationshipService.create(context, itemOne, itemTwo, relationshipType, 0, 0);
|
||||||
|
relationshipService.update(context, relationship);
|
||||||
|
relationshipsList.add(relationship);
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e);
|
||||||
|
fail(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
try {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
relationshipService.delete(context, relationship);
|
||||||
|
relationshipTypeService.delete(context, relationshipType);
|
||||||
|
entityTypeService.delete(context, entityTypeTwo);
|
||||||
|
entityTypeService.delete(context, entityTypeOne);
|
||||||
|
itemService.delete(context, itemOne);
|
||||||
|
itemService.delete(context, itemTwo);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e);
|
||||||
|
fail(e.getMessage());
|
||||||
|
}
|
||||||
|
super.destroy();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindByItem() throws Exception {
|
||||||
|
assertEquals("TestFindByItem 0", relationshipsList, relationshipService.findByItem(context, itemOne, -1, -1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindLeftPlaceByLeftItem() throws Exception {
|
||||||
|
assertEquals("TestLeftPlaceByLeftItem 0", 0, relationshipService.findLeftPlaceByLeftItem(context,
|
||||||
|
itemOne));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindRightPlaceByRightItem() throws Exception {
|
||||||
|
assertEquals("TestRightPlaceByRightItem 0", 0, relationshipService.findRightPlaceByRightItem(context,
|
||||||
|
itemTwo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindByRelationshipType() throws Exception {
|
||||||
|
assertEquals("TestByRelationshipType 0", relationshipsList, relationshipService.findByRelationshipType(context,
|
||||||
|
relationshipType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCountRows() throws Exception {
|
||||||
|
assertEquals("TestByRelationshipType 0", relationshipsList.size(), relationshipService.countTotal(context));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,137 @@
|
|||||||
|
/**
|
||||||
|
* The contents of this file are subject to the license and copyright
|
||||||
|
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||||
|
* tree and available online at
|
||||||
|
*
|
||||||
|
* http://www.dspace.org/license/
|
||||||
|
*/
|
||||||
|
package org.dspace.content.dao;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.dspace.AbstractIntegrationTest;
|
||||||
|
import org.dspace.content.Collection;
|
||||||
|
import org.dspace.content.Community;
|
||||||
|
import org.dspace.content.EntityType;
|
||||||
|
import org.dspace.content.Item;
|
||||||
|
import org.dspace.content.Relationship;
|
||||||
|
import org.dspace.content.RelationshipType;
|
||||||
|
import org.dspace.content.WorkspaceItem;
|
||||||
|
import org.dspace.content.factory.ContentServiceFactory;
|
||||||
|
import org.dspace.content.service.CollectionService;
|
||||||
|
import org.dspace.content.service.CommunityService;
|
||||||
|
import org.dspace.content.service.EntityTypeService;
|
||||||
|
import org.dspace.content.service.InstallItemService;
|
||||||
|
import org.dspace.content.service.ItemService;
|
||||||
|
import org.dspace.content.service.RelationshipService;
|
||||||
|
import org.dspace.content.service.RelationshipTypeService;
|
||||||
|
import org.dspace.content.service.WorkspaceItemService;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class RelationshipTypeDAOImplTest extends AbstractIntegrationTest {
|
||||||
|
|
||||||
|
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(RelationshipTypeDAOImplTest.class);
|
||||||
|
|
||||||
|
private Relationship relationship;
|
||||||
|
|
||||||
|
private Item itemOne;
|
||||||
|
|
||||||
|
private Item itemTwo;
|
||||||
|
|
||||||
|
private Collection collection;
|
||||||
|
|
||||||
|
private Community owningCommunity;
|
||||||
|
|
||||||
|
private RelationshipType relationshipType;
|
||||||
|
|
||||||
|
private List<RelationshipType> relationshipTypeList = new ArrayList<>();
|
||||||
|
|
||||||
|
private EntityType entityTypeOne;
|
||||||
|
|
||||||
|
private EntityType entityTypeTwo;
|
||||||
|
|
||||||
|
protected CommunityService communityService = ContentServiceFactory.getInstance().getCommunityService();
|
||||||
|
protected CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService();
|
||||||
|
protected ItemService itemService = ContentServiceFactory.getInstance().getItemService();
|
||||||
|
protected InstallItemService installItemService = ContentServiceFactory.getInstance().getInstallItemService();
|
||||||
|
protected WorkspaceItemService workspaceItemService = ContentServiceFactory.getInstance().getWorkspaceItemService();
|
||||||
|
protected RelationshipTypeService relationshipTypeService =
|
||||||
|
ContentServiceFactory.getInstance().getRelationshipTypeService();
|
||||||
|
protected RelationshipService relationshipService = ContentServiceFactory.getInstance().getRelationshipService();
|
||||||
|
protected EntityTypeService entityTypeService = ContentServiceFactory.getInstance().getEntityTypeService();
|
||||||
|
|
||||||
|
@Before
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
try {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
owningCommunity = communityService.create(null, context);
|
||||||
|
collection = collectionService.create(context, owningCommunity);
|
||||||
|
WorkspaceItem workspaceItem = workspaceItemService.create(context, collection, false);
|
||||||
|
WorkspaceItem workspaceItemTwo = workspaceItemService.create(context, collection, false);
|
||||||
|
itemOne = installItemService.installItem(context, workspaceItem);
|
||||||
|
itemTwo = installItemService.installItem(context, workspaceItemTwo);
|
||||||
|
itemService.addMetadata(context, itemOne, "relationship", "type", null, Item.ANY, "Publication");
|
||||||
|
itemService.addMetadata(context, itemTwo, "relationship", "type", null, Item.ANY, "Person");
|
||||||
|
itemService.update(context, itemOne);
|
||||||
|
itemService.update(context, itemTwo);
|
||||||
|
entityTypeOne = entityTypeService.create(context, "Person");
|
||||||
|
entityTypeTwo = entityTypeService.create(context, "Publication");
|
||||||
|
relationshipType = relationshipTypeService.create(context, entityTypeTwo, entityTypeOne,
|
||||||
|
"isAuthorOfPublication", "isPublicationOfAuthor",0,10,0,10);
|
||||||
|
relationship = relationshipService.create(context, itemOne, itemTwo, relationshipType, 0, 0);
|
||||||
|
relationshipService.update(context, relationship);
|
||||||
|
relationshipTypeList.add(relationshipType);
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e);
|
||||||
|
fail(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
try {
|
||||||
|
// Cleanup newly created objects
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
relationshipService.delete(context, relationship);
|
||||||
|
relationshipTypeService.delete(context, relationshipType);
|
||||||
|
entityTypeService.delete(context, entityTypeTwo);
|
||||||
|
entityTypeService.delete(context, entityTypeOne);
|
||||||
|
itemService.delete(context, itemOne);
|
||||||
|
itemService.delete(context, itemTwo);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e);
|
||||||
|
fail(e.getMessage());
|
||||||
|
}
|
||||||
|
super.destroy();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindByTypesAndLabels() throws Exception {
|
||||||
|
assertEquals("TestFindByItem 0", relationshipType, relationshipTypeService.findbyTypesAndLabels(context,
|
||||||
|
entityTypeTwo, entityTypeOne, "isAuthorOfPublication", "isPublicationOfAuthor"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindByLeftOrRightLabel() throws Exception {
|
||||||
|
assertEquals("TestFindByItem 0", relationshipTypeList, relationshipTypeService.findByLeftOrRightLabel(context,
|
||||||
|
"isAuthorOfPublication", -1, -1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFindByEntityType() throws Exception {
|
||||||
|
assertEquals("TestFindByItem 0", relationshipTypeList, relationshipTypeService.findByEntityType(context,
|
||||||
|
entityTypeOne));
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user