From 87c67f644d38e3f443b01fbc575f7151d56e0033 Mon Sep 17 00:00:00 2001 From: Laramie Crocker Date: Fri, 17 Dec 2010 02:43:25 +0000 Subject: [PATCH] CSPACE-1847 Added new method overload for readList(str,str,str,str,str) to handle paging parameters so it is now readList(s,s,s,s,s,s,Long,Long) --- .../services/client/RelationClient.java | 12 +++++ .../services/client/RelationProxy.java | 14 ++++- .../client/test/RelationServiceTest.java | 52 +++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java index 85eda922a..ce45a321b 100644 --- a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java +++ b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java @@ -114,6 +114,18 @@ public class RelationClient extends AbstractServiceClientImpl { return relationProxy.readList(subjectCsid, subjectType, predicate, objectCsid, objectType); } + public ClientResponse readList(String subjectCsid, + String subjectType, + String predicate, + String objectCsid, + String objectType, + String sortBy, + Long pageSize, + Long pageNumber) { + return relationProxy.readList(subjectCsid, subjectType, predicate, objectCsid, objectType, sortBy, pageSize, pageNumber); + } + + /** * Read. * diff --git a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java index 1533cb429..73623cbce 100644 --- a/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java +++ b/services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java @@ -38,7 +38,19 @@ public interface RelationProxy extends CollectionSpaceProxy { @QueryParam(IRelationsManager.PREDICATE_QP) String predicate, @QueryParam(IRelationsManager.OBJECT_QP) String objectCsid, @QueryParam(IRelationsManager.OBJECT_TYPE_QP) String objectType); - + + @GET + @Produces({"application/xml"}) + ClientResponse readList( + @QueryParam(IRelationsManager.SUBJECT_QP) String subjectCsid, + @QueryParam(IRelationsManager.SUBJECT_TYPE_QP) String subjectType, + @QueryParam(IRelationsManager.PREDICATE_QP) String predicate, + @QueryParam(IRelationsManager.OBJECT_QP) String objectCsid, + @QueryParam(IRelationsManager.OBJECT_TYPE_QP) String objectType, + @QueryParam(IClientQueryParams.SORT_BY_PARAM) String sortBy, + @QueryParam(IClientQueryParams.PAGE_SIZE_PARAM) Long pageSize, + @QueryParam(IClientQueryParams.START_PAGE_PARAM) Long pageNumber); + //(C)reate @POST ClientResponse create(MultipartOutput multipart); diff --git a/services/relation/client/src/test/java/org/collectionspace/services/client/test/RelationServiceTest.java b/services/relation/client/src/test/java/org/collectionspace/services/client/test/RelationServiceTest.java index 55dea04c6..c9ac4b32c 100644 --- a/services/relation/client/src/test/java/org/collectionspace/services/client/test/RelationServiceTest.java +++ b/services/relation/client/src/test/java/org/collectionspace/services/client/test/RelationServiceTest.java @@ -380,6 +380,58 @@ public class RelationServiceTest extends AbstractServiceTestImpl { } + + @Test(dataProvider="testName", dataProviderClass=AbstractServiceTestImpl.class, + dependsOnMethods = {"createList", "read"}) + public void readListPaginated(String testName) throws Exception { + + if (logger.isDebugEnabled()) { + logger.debug(testBanner(testName, CLASS_NAME)); + } + // Perform setup. + setupReadList(); + + Long pageSize=1L; + Long pageNumber=0L; + RelationClient client = new RelationClient(); + ClientResponse res = client.readList("", //subjectCsid, + "", //subjectType, + "", //predicate, + "", //objectCsid, + "", //objectType, + "", //sortBy, + pageSize, + pageNumber); + RelationsCommonList list = res.getEntity(); + int statusCode = res.getStatus(); + + // Check the status code of the response: does it match + // the expected response(s)? + if(logger.isDebugEnabled()){ + logger.debug(testName + ": status = " + statusCode); + } + Assert.assertTrue(REQUEST_TYPE.isValidStatusCode(statusCode), + invalidStatusCodeMessage(REQUEST_TYPE, statusCode)); + Assert.assertEquals(statusCode, EXPECTED_STATUS_CODE); + + // Optionally output additional data about list members for debugging. + boolean iterateThroughList = false; + if(iterateThroughList && logger.isDebugEnabled()){ + List items = + list.getRelationListItem(); + int i = 0; + for(RelationsCommonList.RelationListItem item : items){ + logger.debug(testName + ": list-item[" + i + "] csid=" + + item.getCsid()); + logger.debug(testName + ": list-item[" + i + "] URI=" + + item.getUri()); + i++; + } + } + + } + + // Failure outcomes // None at present. -- 2.47.3