Enhance unit/integration tests to also test for mapped items in ITCommunityCollection

This commit is contained in:
Tim Donohue
2016-02-04 15:27:45 -06:00
parent 2139b09353
commit 094820c12d
3 changed files with 29 additions and 14 deletions

View File

@@ -1961,6 +1961,8 @@ public class CollectionTest extends AbstractDSpaceObjectTest
{ {
//0 by default //0 by default
assertTrue("testCountItems 0", itemService.countItems(context, collection) == 0); assertTrue("testCountItems 0", itemService.countItems(context, collection) == 0);
//NOTE: a more thorough test of item counting is in ITCommunityCollection integration test
} }
/** /**

View File

@@ -1480,7 +1480,9 @@ public class CommunityTest extends AbstractDSpaceObjectTest
public void testCountItems() throws Exception public void testCountItems() throws Exception
{ {
//0 by default //0 by default
assertTrue("testCountItems 0", communityService.countItems(context, c) == 0); assertTrue("testCountItems 0", itemService.countItems(context, c) == 0);
//NOTE: a more thorough test of item counting is in ITCommunityCollection integration test
} }
/** /**

View File

@@ -125,35 +125,46 @@ public class ITCommunityCollection extends AbstractIntegrationTest
/** /**
* Tests that count items works as expected * Tests that count items works as expected
* NOTE: Counts are currently expensive (take a while)
*/ */
@Test @Test
@PerfTest(invocations = 25, threads = 1) @PerfTest(invocations = 10, threads = 1)
@Required(percentile95 = 2000, average= 1800) @Required(percentile95 = 2000, average= 1800)
public void testCountItems() throws SQLException, AuthorizeException, IOException { public void testCountItems() throws SQLException, AuthorizeException, IOException {
//make it an even number, not too high to reduce time during testing int items_per_collection = 2;
int totalitems = 4;
//we create the structure //we create the structure
context.turnOffAuthorisationSystem(); context.turnOffAuthorisationSystem();
Community parent = communityService.create(null, context); Community parentCom = communityService.create(null, context);
Community child1 = communityService.create(parent, context); Community childCom = communityService.create(parentCom, context);
Collection col1 = collectionService.create(context, child1); Collection col1 = collectionService.create(context, childCom);
Collection col2 = collectionService.create(context, child1); Collection col2 = collectionService.create(context, childCom);
for(int count = 0; count < totalitems/2; count++) // Add same number of items to each collection
for(int count = 0; count < items_per_collection; count++)
{ {
Item item1 = installItemService.installItem(context, workspaceItemService.create(context, col1, false)); Item item1 = installItemService.installItem(context, workspaceItemService.create(context, col1, false));
Item item2 = installItemService.installItem(context, workspaceItemService.create(context, col2, false)); Item item2 = installItemService.installItem(context, workspaceItemService.create(context, col2, false));
} }
// Finally, let's throw in a small wrench and add a mapped item
// Add it to collection 1
Item item3 = installItemService.installItem(context, workspaceItemService.create(context, col1, false));
// Map it into collection 2
collectionService.addItem(context, col2, item3);
// Our total number of items should be
int totalitems = items_per_collection*2 + 1;
// Our collection counts should be
int collTotalItems = items_per_collection + 1;
context.restoreAuthSystemState(); context.restoreAuthSystemState();
//verify it works as expected //verify it works as expected
assertThat("testCountItems 0", itemService.countItems(context, col1), equalTo(totalitems/2)); assertThat("testCountItems 0", itemService.countItems(context, col1), equalTo(collTotalItems));
assertThat("testCountItems 1", itemService.countItems(context, col2), equalTo(totalitems/2)); assertThat("testCountItems 1", itemService.countItems(context, col2), equalTo(collTotalItems));
assertThat("testCountItems 2", communityService.countItems(context, child1), equalTo(totalitems)); assertThat("testCountItems 2", itemService.countItems(context, childCom), equalTo(totalitems));
assertThat("testCountItems 3", communityService.countItems(context, parent), equalTo(totalitems)); assertThat("testCountItems 3", itemService.countItems(context, parentCom), equalTo(totalitems));
} }
} }