.sorting(new Sorting("lastName,-name")) .resourceParams(resourceParams).build(); ResourceState result = client.read(requestContext, "/testApp/" + BASEPATH + "/testSortCollection"); .sorting(new Sorting("lastName,-name")) .resourceParams(resourceParams) .pagination(new DefaultPagination(0, 2)).build(); .sorting(new Sorting("lastName,-name")) .resourceParams(resourceParams) .pagination(new DefaultPagination(2, 2)).build(); .sorting(new Sorting("lastName,-name")) .resourceParams(resourceParams) .pagination(new DefaultPagination(4, 2)).build();
@Test public void getStorageCollectionsQueryAndSort() throws Exception { DBCollection collection = db.getCollection("testQuerySortCollection"); if (collection != null) { collection.drop(); } collection = db.createCollection("testQuerySortCollection", new BasicDBObject("count", 0)); // insert data records for the test setupPeopleData(collection); assertThat(collection.count()).isEqualTo(6); // going through DirectConnector will bypass phase where container sets up Pagination, Sorting, ReturnFields // so resourceParams are only relevant for 'q' parameter SimpleResourceParams resourceParams = new SimpleResourceParams(); resourceParams.put("q", "{country:{$ne:'FR'}}"); // This should return 4 items ordered by lastName descending and name ascending RequestContext requestContext = new RequestContext.Builder() .returnFields(new DefaultReturnFields("*(*)")) .sorting(new Sorting("-lastName,name")) .resourceParams(resourceParams).build(); ResourceState result = client.read(requestContext, "/testApp/" + BASEPATH + "/testQuerySortCollection"); String[] expectedAry = {"Helga", "Hans", "Jane", "John"}; assertThat(expectedAry).isEqualTo(getNames(result)); }