]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-1847 Added new method overload for readList(str,str,str,str,str) to handle...
authorLaramie Crocker <laramie@berkeley.edu>
Fri, 17 Dec 2010 02:43:25 +0000 (02:43 +0000)
committerLaramie Crocker <laramie@berkeley.edu>
Fri, 17 Dec 2010 02:43:25 +0000 (02:43 +0000)
services/relation/client/src/main/java/org/collectionspace/services/client/RelationClient.java
services/relation/client/src/main/java/org/collectionspace/services/client/RelationProxy.java
services/relation/client/src/test/java/org/collectionspace/services/client/test/RelationServiceTest.java

index 85eda922aed3927151f02027c58866beb5bb4d06..ce45a321be742ada9bd77d990403371faaa1df24 100644 (file)
@@ -114,6 +114,18 @@ public class RelationClient extends AbstractServiceClientImpl {
                return relationProxy.readList(subjectCsid, subjectType, predicate, objectCsid, objectType);
        }
 
+    public ClientResponse<RelationsCommonList> 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.
         *
index 1533cb4298e8e85592e35b475d3f269293cbe680..73623cbce6ca66f4d45f0bef63c60231bf1fffe5 100644 (file)
@@ -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<RelationsCommonList> 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<Response> create(MultipartOutput multipart);
index 55dea04c66b3bbf09199d7316876f8a1d1e9839b..c9ac4b32ca6a391797088090b379ef60d0b00552 100644 (file)
@@ -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<RelationsCommonList> 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<RelationsCommonList.RelationListItem> 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.