TSK-889: Standardise paginated List behaviour and sub classes

This commit is contained in:
Benjamin Eckstein 2020-01-14 14:57:26 +01:00 committed by Holger Hagen
parent f06f87f41e
commit 6a6dcb9c1e
12 changed files with 86 additions and 97 deletions

View File

@ -167,7 +167,10 @@ public class TaskHistoryEventControllerRestDocumentation {
fieldWithPath("taskHistoryEvents[].newData") fieldWithPath("taskHistoryEvents[].newData")
.description(taskHistoryEventFieldDescriptionsMap.get("newData")), .description(taskHistoryEventFieldDescriptionsMap.get("newData")),
fieldWithPath("_links.self.href").ignored(), fieldWithPath("_links.self.href").ignored(),
fieldWithPath("page").ignored() fieldWithPath("page.size").ignored(),
fieldWithPath("page.totalElements").ignored(),
fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.number").ignored()
}; };
} }

View File

@ -22,7 +22,7 @@ import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException; import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.ldap.LdapClient; import pro.taskana.ldap.LdapClient;
import pro.taskana.rest.resource.PagedResources.PageMetadata; import pro.taskana.rest.resource.PagedResources.PageMetadata;
import pro.taskana.rest.resource.WorkbasketAccessItemPaginatedListResource; import pro.taskana.rest.resource.WorkbasketAccessItemListResource;
import pro.taskana.rest.resource.WorkbasketAccessItemResourceAssembler; import pro.taskana.rest.resource.WorkbasketAccessItemResourceAssembler;
/** Controller for Workbasket access. */ /** Controller for Workbasket access. */
@ -58,7 +58,7 @@ public class WorkbasketAccessItemController extends AbstractPagingController {
* @throws InvalidArgumentException if some argument is invalid. * @throws InvalidArgumentException if some argument is invalid.
*/ */
@GetMapping(path = Mapping.URL_WORKBASKETACCESSITEMS) @GetMapping(path = Mapping.URL_WORKBASKETACCESSITEMS)
public ResponseEntity<WorkbasketAccessItemPaginatedListResource> getWorkbasketAccessItems( public ResponseEntity<WorkbasketAccessItemListResource> getWorkbasketAccessItems(
@RequestParam MultiValueMap<String, String> params) @RequestParam MultiValueMap<String, String> params)
throws NotAuthorizedException, InvalidArgumentException { throws NotAuthorizedException, InvalidArgumentException {
if (LOGGER.isDebugEnabled()) { if (LOGGER.isDebugEnabled()) {
@ -73,11 +73,10 @@ public class WorkbasketAccessItemController extends AbstractPagingController {
PageMetadata pageMetadata = getPageMetadata(params, query); PageMetadata pageMetadata = getPageMetadata(params, query);
List<WorkbasketAccessItem> workbasketAccessItems = getQueryList(query, pageMetadata); List<WorkbasketAccessItem> workbasketAccessItems = getQueryList(query, pageMetadata);
WorkbasketAccessItemPaginatedListResource pagedResources = WorkbasketAccessItemListResource pagedResources =
workbasketAccessItemResourceAssembler.toResources(workbasketAccessItems, pageMetadata); workbasketAccessItemResourceAssembler.toResources(workbasketAccessItems, pageMetadata);
ResponseEntity<WorkbasketAccessItemPaginatedListResource> response = ResponseEntity<WorkbasketAccessItemListResource> response = ResponseEntity.ok(pagedResources);
ResponseEntity.ok(pagedResources);
if (LOGGER.isDebugEnabled()) { if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Exit from getWorkbasketAccessItems(), returning {}", response); LOGGER.debug("Exit from getWorkbasketAccessItems(), returning {}", response);
} }

View File

@ -1,7 +1,6 @@
package pro.taskana.rest; package pro.taskana.rest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -41,7 +40,7 @@ import pro.taskana.rest.resource.DistributionTargetListResource;
import pro.taskana.rest.resource.DistributionTargetResource; import pro.taskana.rest.resource.DistributionTargetResource;
import pro.taskana.rest.resource.DistributionTargetResourceAssembler; import pro.taskana.rest.resource.DistributionTargetResourceAssembler;
import pro.taskana.rest.resource.PagedResources.PageMetadata; import pro.taskana.rest.resource.PagedResources.PageMetadata;
import pro.taskana.rest.resource.WorkbasketAccessItemPaginatedListResource; import pro.taskana.rest.resource.WorkbasketAccessItemListResource;
import pro.taskana.rest.resource.WorkbasketAccessItemResource; import pro.taskana.rest.resource.WorkbasketAccessItemResource;
import pro.taskana.rest.resource.WorkbasketAccessItemResourceAssembler; import pro.taskana.rest.resource.WorkbasketAccessItemResourceAssembler;
import pro.taskana.rest.resource.WorkbasketResource; import pro.taskana.rest.resource.WorkbasketResource;
@ -201,11 +200,11 @@ public class WorkbasketController extends AbstractPagingController {
@GetMapping(path = Mapping.URL_WORKBASKET_ID_ACCESSITEMS) @GetMapping(path = Mapping.URL_WORKBASKET_ID_ACCESSITEMS)
@Transactional(readOnly = true, rollbackFor = Exception.class) @Transactional(readOnly = true, rollbackFor = Exception.class)
public ResponseEntity<WorkbasketAccessItemPaginatedListResource> getWorkbasketAccessItems( public ResponseEntity<WorkbasketAccessItemListResource> getWorkbasketAccessItems(
@PathVariable(value = "workbasketId") String workbasketId) @PathVariable(value = "workbasketId") String workbasketId)
throws NotAuthorizedException, WorkbasketNotFoundException { throws NotAuthorizedException, WorkbasketNotFoundException {
LOGGER.debug("Entry to getWorkbasketAccessItems(workbasketId= {})", workbasketId); LOGGER.debug("Entry to getWorkbasketAccessItems(workbasketId= {})", workbasketId);
ResponseEntity<WorkbasketAccessItemPaginatedListResource> result; ResponseEntity<WorkbasketAccessItemListResource> result;
List<WorkbasketAccessItem> accessItems = List<WorkbasketAccessItem> accessItems =
workbasketService.getWorkbasketAccessItems(workbasketId); workbasketService.getWorkbasketAccessItems(workbasketId);
@ -221,7 +220,7 @@ public class WorkbasketController extends AbstractPagingController {
@PutMapping(path = Mapping.URL_WORKBASKET_ID_ACCESSITEMS) @PutMapping(path = Mapping.URL_WORKBASKET_ID_ACCESSITEMS)
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResponseEntity<WorkbasketAccessItemPaginatedListResource> setWorkbasketAccessItems( public ResponseEntity<WorkbasketAccessItemListResource> setWorkbasketAccessItems(
@PathVariable(value = "workbasketId") String workbasketId, @PathVariable(value = "workbasketId") String workbasketId,
@RequestBody List<WorkbasketAccessItemResource> workbasketAccessResourceItems) @RequestBody List<WorkbasketAccessItemResource> workbasketAccessResourceItems)
throws NotAuthorizedException, InvalidArgumentException, WorkbasketNotFoundException { throws NotAuthorizedException, InvalidArgumentException, WorkbasketNotFoundException {
@ -237,7 +236,7 @@ public class WorkbasketController extends AbstractPagingController {
List<WorkbasketAccessItem> updatedWbAccessItems = List<WorkbasketAccessItem> updatedWbAccessItems =
workbasketService.getWorkbasketAccessItems(workbasketId); workbasketService.getWorkbasketAccessItems(workbasketId);
ResponseEntity<WorkbasketAccessItemPaginatedListResource> response = ResponseEntity<WorkbasketAccessItemListResource> response =
ResponseEntity.ok( ResponseEntity.ok(
workbasketAccessItemResourceAssembler.toResources(workbasketId, updatedWbAccessItems)); workbasketAccessItemResourceAssembler.toResources(workbasketId, updatedWbAccessItems));
if (LOGGER.isDebugEnabled()) { if (LOGGER.isDebugEnabled()) {
@ -423,7 +422,7 @@ public class WorkbasketController extends AbstractPagingController {
params.remove(TYPE); params.remove(TYPE);
} }
if (params.containsKey(REQUIRED_PERMISSION)) { if (params.containsKey(REQUIRED_PERMISSION)) {
for (String authorization : Arrays.asList(params.getFirst(REQUIRED_PERMISSION).split(","))) { for (String authorization : params.getFirst(REQUIRED_PERMISSION).split(",")) {
switch (authorization.trim()) { switch (authorization.trim()) {
case "READ": case "READ":
query.callerHasPermission(WorkbasketPermission.READ); query.callerHasPermission(WorkbasketPermission.READ);

View File

@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Objects;
import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlAttribute;
import org.springframework.hateoas.Link; import org.springframework.hateoas.Link;
import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.ResourceSupport;
@ -60,6 +61,10 @@ public class PagedResources<T> extends ResourceSupport {
*/ */
@JsonProperty("page") @JsonProperty("page")
public PageMetadata getMetadata() { public PageMetadata getMetadata() {
if (Objects.isNull(metadata)) {
Collection<T> content = getContent();
return new PageMetadata(content.size(), 0, content.size());
}
return metadata; return metadata;
} }

View File

@ -0,0 +1,24 @@
package pro.taskana.rest.resource;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collection;
import org.springframework.hateoas.Link;
/** Resource class for {@link WorkbasketAccessItemResource} with Pagination. */
public class WorkbasketAccessItemListResource extends PagedResources<WorkbasketAccessItemResource> {
public WorkbasketAccessItemListResource() {
super();
}
public WorkbasketAccessItemListResource(
Collection<WorkbasketAccessItemResource> content, PageMetadata metadata, Link... links) {
super(content, metadata, links);
}
@Override
@JsonProperty("accessItems")
public Collection<WorkbasketAccessItemResource> getContent() {
return super.getContent();
}
}

View File

@ -1,43 +0,0 @@
package pro.taskana.rest.resource;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collection;
import java.util.Objects;
import org.springframework.hateoas.Link;
/** Resource class for {@link WorkbasketAccessItemResource} with Pagination. */
public class WorkbasketAccessItemPaginatedListResource
extends PagedResources<WorkbasketAccessItemResource> {
public WorkbasketAccessItemPaginatedListResource() {
super();
}
public WorkbasketAccessItemPaginatedListResource(
Collection<WorkbasketAccessItemResource> content, PageMetadata metadata, Link... links) {
super(content, metadata, links);
}
public WorkbasketAccessItemPaginatedListResource(
Collection<WorkbasketAccessItemResource> content,
PageMetadata metadata,
Iterable<Link> links) {
super(content, metadata, links);
}
@Override
@JsonProperty("accessItems")
public Collection<WorkbasketAccessItemResource> getContent() {
return super.getContent();
}
@Override
public PageMetadata getMetadata() {
PageMetadata pageMetadata = super.getMetadata();
if (Objects.isNull(pageMetadata)) {
Collection<WorkbasketAccessItemResource> content = getContent();
return new PageMetadata(content.size(), 0, content.size());
}
return pageMetadata;
}
}

View File

@ -49,16 +49,16 @@ public class WorkbasketAccessItemResourceAssembler
} }
@PageLinks(Mapping.URL_WORKBASKETACCESSITEMS) @PageLinks(Mapping.URL_WORKBASKETACCESSITEMS)
public WorkbasketAccessItemPaginatedListResource toResources( public WorkbasketAccessItemListResource toResources(
List<WorkbasketAccessItem> entities, PageMetadata pageMetadata) { List<WorkbasketAccessItem> entities, PageMetadata pageMetadata) {
return new WorkbasketAccessItemPaginatedListResource(toResources(entities), pageMetadata); return new WorkbasketAccessItemListResource(toResources(entities), pageMetadata);
} }
public WorkbasketAccessItemPaginatedListResource toResources( public WorkbasketAccessItemListResource toResources(
String workbasketId, List<WorkbasketAccessItem> entities) String workbasketId, List<WorkbasketAccessItem> entities)
throws NotAuthorizedException, WorkbasketNotFoundException { throws NotAuthorizedException, WorkbasketNotFoundException {
WorkbasketAccessItemPaginatedListResource accessItemListResource = WorkbasketAccessItemListResource accessItemListResource =
new WorkbasketAccessItemPaginatedListResource(super.toResources(entities), null); new WorkbasketAccessItemListResource(super.toResources(entities), null);
accessItemListResource.add( accessItemListResource.add(
linkTo(methodOn(WorkbasketController.class).getWorkbasketAccessItems(workbasketId)) linkTo(methodOn(WorkbasketController.class).getWorkbasketAccessItems(workbasketId))
.withSelfRel()); .withSelfRel());

View File

@ -86,7 +86,11 @@ class ClassificationControllerRestDocumentation extends BaseRestDocumentation {
subsectionWithPath("classifications") subsectionWithPath("classifications")
.description("An Array of <<classification-subset, Classification-Subsets>>"), .description("An Array of <<classification-subset, Classification-Subsets>>"),
fieldWithPath("_links.self.href").ignored(), fieldWithPath("_links.self.href").ignored(),
fieldWithPath("page").ignored() fieldWithPath("page").ignored(),
fieldWithPath("page.size").ignored(),
fieldWithPath("page.totalElements").ignored(),
fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.number").ignored()
}; };
classificationFieldDescriptors = classificationFieldDescriptors =
@ -339,7 +343,7 @@ class ClassificationControllerRestDocumentation extends BaseRestDocumentation {
in.close(); in.close();
con.disconnect(); con.disconnect();
String originalTask = content.toString(); String originalTask = content.toString();
String modifiedTask = new String(originalTask.toString()); String modifiedTask = originalTask;
this.mockMvc this.mockMvc
.perform( .perform(

View File

@ -111,7 +111,11 @@ class TaskControllerRestDocumentation extends BaseRestDocumentation {
fieldWithPath("_links").ignored(), fieldWithPath("_links").ignored(),
fieldWithPath("_links.self").ignored(), fieldWithPath("_links.self").ignored(),
fieldWithPath("_links.self.href").ignored(), fieldWithPath("_links.self.href").ignored(),
fieldWithPath("page").ignored() fieldWithPath("page").ignored(),
fieldWithPath("page.size").ignored(),
fieldWithPath("page.totalElements").ignored(),
fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.number").ignored()
}; };
taskFieldDescriptors = taskFieldDescriptors =

View File

@ -56,10 +56,6 @@ class WorkbasketAccessItemControllerRestDocumentation extends BaseRestDocumentat
accessItemFieldDescriptionsMap.put("accessItems.permCustom11", ""); accessItemFieldDescriptionsMap.put("accessItems.permCustom11", "");
accessItemFieldDescriptionsMap.put("accessItems.permCustom12", ""); accessItemFieldDescriptionsMap.put("accessItems.permCustom12", "");
accessItemFieldDescriptionsMap.put("_links.self.href", "Link to self"); accessItemFieldDescriptionsMap.put("_links.self.href", "Link to self");
accessItemFieldDescriptionsMap.put("page.size", "The page size");
accessItemFieldDescriptionsMap.put("page.number", "Zero-indexed current page");
accessItemFieldDescriptionsMap.put("page.totalElements", "The total number of elements");
accessItemFieldDescriptionsMap.put("page.totalPages", "Total amount of pages");
accessItemFieldDescriptors = accessItemFieldDescriptors =
new FieldDescriptor[] { new FieldDescriptor[] {
@ -109,13 +105,10 @@ class WorkbasketAccessItemControllerRestDocumentation extends BaseRestDocumentat
.description(accessItemFieldDescriptionsMap.get("accessItems.permCustom12")), .description(accessItemFieldDescriptionsMap.get("accessItems.permCustom12")),
fieldWithPath("_links.self.href") fieldWithPath("_links.self.href")
.description(accessItemFieldDescriptionsMap.get("_links.self.href")), .description(accessItemFieldDescriptionsMap.get("_links.self.href")),
fieldWithPath("page.size").description(accessItemFieldDescriptionsMap.get("page.size")), fieldWithPath("page.size").ignored(),
fieldWithPath("page.number") fieldWithPath("page.totalElements").ignored(),
.description(accessItemFieldDescriptionsMap.get("page.number")), fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.totalElements") fieldWithPath("page.number").ignored()
.description(accessItemFieldDescriptionsMap.get("page.totalElements")),
fieldWithPath("page.totalPages")
.description(accessItemFieldDescriptionsMap.get("page.totalPages")),
}; };
} }

View File

@ -109,17 +109,17 @@ class WorkbasketControllerRestDocumentation extends BaseRestDocumentation {
accessItemFieldDescriptionsMap.put("accessItems.permCustom12", ""); accessItemFieldDescriptionsMap.put("accessItems.permCustom12", "");
accessItemFieldDescriptionsMap.put( accessItemFieldDescriptionsMap.put(
"accessItems._links.workbasket.href", "Link to the workbasket"); "accessItems._links.workbasket.href", "Link to the workbasket");
accessItemFieldDescriptionsMap.put("page.size", "The page size");
accessItemFieldDescriptionsMap.put("page.number", "Zero-indexed current page");
accessItemFieldDescriptionsMap.put("page.totalElements", "The total number of elements");
accessItemFieldDescriptionsMap.put("page.totalPages", "Total amount of pages");
allWorkbasketsFieldDescriptors = allWorkbasketsFieldDescriptors =
new FieldDescriptor[] { new FieldDescriptor[] {
subsectionWithPath("workbaskets") subsectionWithPath("workbaskets")
.description("An Array of <<workbasket-subset, Workbasket-Subsets>>"), .description("An Array of <<workbasket-subset, Workbasket-Subsets>>"),
fieldWithPath("_links.self.href").ignored(), fieldWithPath("_links.self.href").ignored(),
fieldWithPath("page").ignored() fieldWithPath("page").ignored(),
fieldWithPath("page.size").ignored(),
fieldWithPath("page.totalElements").ignored(),
fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.number").ignored()
}; };
workbasketFieldDescriptors = workbasketFieldDescriptors =
@ -229,13 +229,10 @@ class WorkbasketControllerRestDocumentation extends BaseRestDocumentation {
.description(accessItemFieldDescriptionsMap.get("accessItems.permCustom11")), .description(accessItemFieldDescriptionsMap.get("accessItems.permCustom11")),
fieldWithPath("accessItems[].permCustom12") fieldWithPath("accessItems[].permCustom12")
.description(accessItemFieldDescriptionsMap.get("accessItems.permCustom12")), .description(accessItemFieldDescriptionsMap.get("accessItems.permCustom12")),
fieldWithPath("page.size").description(accessItemFieldDescriptionsMap.get("page.size")), fieldWithPath("page.size").ignored(),
fieldWithPath("page.number") fieldWithPath("page.totalElements").ignored(),
.description(accessItemFieldDescriptionsMap.get("page.number")), fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.totalElements") fieldWithPath("page.number").ignored(),
.description(accessItemFieldDescriptionsMap.get("page.totalElements")),
fieldWithPath("page.totalPages")
.description(accessItemFieldDescriptionsMap.get("page.totalPages")),
fieldWithPath("_links.self.href").ignored(), fieldWithPath("_links.self.href").ignored(),
fieldWithPath("_links.workbasket.href").ignored() fieldWithPath("_links.workbasket.href").ignored()
}; };
@ -244,7 +241,11 @@ class WorkbasketControllerRestDocumentation extends BaseRestDocumentation {
new FieldDescriptor[] { new FieldDescriptor[] {
subsectionWithPath("accessItems") subsectionWithPath("accessItems")
.description("An array of <<access-item, Access Items>>"), .description("An array of <<access-item, Access Items>>"),
subsectionWithPath("page").description("Number of page"), fieldWithPath("page").ignored(),
fieldWithPath("page.size").ignored(),
fieldWithPath("page.totalElements").ignored(),
fieldWithPath("page.totalPages").ignored(),
fieldWithPath("page.number").ignored(),
fieldWithPath("_links.self.href").ignored(), fieldWithPath("_links.self.href").ignored(),
fieldWithPath("_links.workbasket.href").ignored() fieldWithPath("_links.workbasket.href").ignored()
}; };
@ -462,7 +463,7 @@ class WorkbasketControllerRestDocumentation extends BaseRestDocumentation {
in.close(); in.close();
con.disconnect(); con.disconnect();
String originalWorkbasket = content.toString(); String originalWorkbasket = content.toString();
String modifiedWorkbasket = new String(originalWorkbasket.toString()); String modifiedWorkbasket = originalWorkbasket;
this.mockMvc this.mockMvc
.perform( .perform(

View File

@ -21,7 +21,7 @@ import org.springframework.web.client.RestTemplate;
import pro.taskana.RestHelper; import pro.taskana.RestHelper;
import pro.taskana.TaskanaSpringBootTest; import pro.taskana.TaskanaSpringBootTest;
import pro.taskana.rest.resource.WorkbasketAccessItemPaginatedListResource; import pro.taskana.rest.resource.WorkbasketAccessItemListResource;
/** Test WorkbasketAccessItemController. */ /** Test WorkbasketAccessItemController. */
@TestMethodOrder(MethodOrderer.Alphanumeric.class) @TestMethodOrder(MethodOrderer.Alphanumeric.class)
@ -38,24 +38,24 @@ class WorkbasketAccessItemControllerIntTest {
@Test @Test
void testGetAllWorkbasketAccessItems() { void testGetAllWorkbasketAccessItems() {
ResponseEntity<WorkbasketAccessItemPaginatedListResource> response = ResponseEntity<WorkbasketAccessItemListResource> response =
template.exchange( template.exchange(
restHelper.toUrl(Mapping.URL_WORKBASKETACCESSITEMS), restHelper.toUrl(Mapping.URL_WORKBASKETACCESSITEMS),
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
ParameterizedTypeReference.forType(WorkbasketAccessItemPaginatedListResource.class)); ParameterizedTypeReference.forType(WorkbasketAccessItemListResource.class));
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));
} }
@Test @Test
void testGetWorkbasketAccessItemsKeepingFilters() { void testGetWorkbasketAccessItemsKeepingFilters() {
String parameters = "?sort-by=workbasket-key&order=asc&page=1&page-size=9&access-ids=user_1_1"; String parameters = "?sort-by=workbasket-key&order=asc&page=1&page-size=9&access-ids=user_1_1";
ResponseEntity<WorkbasketAccessItemPaginatedListResource> response = ResponseEntity<WorkbasketAccessItemListResource> response =
template.exchange( template.exchange(
restHelper.toUrl(Mapping.URL_WORKBASKETACCESSITEMS) + parameters, restHelper.toUrl(Mapping.URL_WORKBASKETACCESSITEMS) + parameters,
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
ParameterizedTypeReference.forType(WorkbasketAccessItemPaginatedListResource.class)); ParameterizedTypeReference.forType(WorkbasketAccessItemListResource.class));
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));
assertTrue(response.getBody().getLink(Link.REL_SELF).getHref().endsWith(parameters)); assertTrue(response.getBody().getLink(Link.REL_SELF).getHref().endsWith(parameters));
} }
@ -68,7 +68,7 @@ class WorkbasketAccessItemControllerIntTest {
+ "?sort-by=workbasket-key&order=asc&page=1&page-size=9&invalid=user_1_1", + "?sort-by=workbasket-key&order=asc&page=1&page-size=9&invalid=user_1_1",
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
ParameterizedTypeReference.forType(WorkbasketAccessItemPaginatedListResource.class)); ParameterizedTypeReference.forType(WorkbasketAccessItemListResource.class));
fail(); fail();
} catch (HttpClientErrorException e) { } catch (HttpClientErrorException e) {
assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode());
@ -79,12 +79,12 @@ class WorkbasketAccessItemControllerIntTest {
@Test @Test
void testGetSecondPageSortedByWorkbasketKey() { void testGetSecondPageSortedByWorkbasketKey() {
String parameters = "?sort-by=workbasket-key&order=asc&page=2&page-size=9&access-ids=user_1_1"; String parameters = "?sort-by=workbasket-key&order=asc&page=2&page-size=9&access-ids=user_1_1";
ResponseEntity<WorkbasketAccessItemPaginatedListResource> response = ResponseEntity<WorkbasketAccessItemListResource> response =
template.exchange( template.exchange(
restHelper.toUrl(Mapping.URL_WORKBASKETACCESSITEMS) + parameters, restHelper.toUrl(Mapping.URL_WORKBASKETACCESSITEMS) + parameters,
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
ParameterizedTypeReference.forType(WorkbasketAccessItemPaginatedListResource.class)); ParameterizedTypeReference.forType(WorkbasketAccessItemListResource.class));
assertEquals(1, response.getBody().getContent().size()); assertEquals(1, response.getBody().getContent().size());
assertEquals("user_1_1", response.getBody().getContent().iterator().next().accessId); assertEquals("user_1_1", response.getBody().getContent().iterator().next().accessId);
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));