TSK-1699 - Register CustomEditor for String[]
all String[] parameters should not be splitted when only one parameter exists, with values delimited with comma
This commit is contained in:
parent
f812639cc2
commit
f854e3d579
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
### GENERATED ###
|
### GENERATED ###
|
||||||
target/
|
target/
|
||||||
|
routing/taskana-routing-rest/target\\routing.dmn
|
||||||
.apt_generated/
|
.apt_generated/
|
||||||
.checkstyle
|
.checkstyle
|
||||||
bin/
|
bin/
|
||||||
|
|
|
@ -2,6 +2,7 @@ package pro.taskana.common.rest;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.propertyeditors.StringArrayPropertyEditor;
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
import org.springframework.web.bind.WebDataBinder;
|
||||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||||
import org.springframework.web.bind.annotation.InitBinder;
|
import org.springframework.web.bind.annotation.InitBinder;
|
||||||
|
@ -11,12 +12,12 @@ import pro.taskana.task.api.models.ObjectReference;
|
||||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||||
|
|
||||||
@ControllerAdvice
|
@ControllerAdvice
|
||||||
public class JsonPropertyEditorRegistrator {
|
public class InitBinderControllerAdvice {
|
||||||
|
|
||||||
private final ObjectMapper objectMapper;
|
private final ObjectMapper objectMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public JsonPropertyEditorRegistrator(ObjectMapper objectMapper) {
|
public InitBinderControllerAdvice(ObjectMapper objectMapper) {
|
||||||
this.objectMapper = objectMapper;
|
this.objectMapper = objectMapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,5 +28,6 @@ public class JsonPropertyEditorRegistrator {
|
||||||
new JsonPropertyEditor(objectMapper, PriorityColumnHeaderRepresentationModel.class));
|
new JsonPropertyEditor(objectMapper, PriorityColumnHeaderRepresentationModel.class));
|
||||||
binder.registerCustomEditor(
|
binder.registerCustomEditor(
|
||||||
ObjectReference.class, new JsonPropertyEditor(objectMapper, ObjectReferenceImpl.class));
|
ObjectReference.class, new JsonPropertyEditor(objectMapper, ObjectReferenceImpl.class));
|
||||||
|
binder.registerCustomEditor(String[].class, new StringArrayPropertyEditor(null));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -103,6 +103,24 @@ class WorkbasketAccessItemControllerIntTest {
|
||||||
assertThat(response.getBody().getPageMetadata().getNumber()).isEqualTo(1);
|
assertThat(response.getBody().getPageMetadata().getNumber()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void should_notSplitQueryParameterByComma_When_accessId_containsTwo() {
|
||||||
|
String parameters =
|
||||||
|
"?sort-by=WORKBASKET_KEY&order=ASCENDING&page=1&page-size=9&access-id=user-1-1,user-1-2";
|
||||||
|
String url = restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS) + parameters;
|
||||||
|
HttpEntity<Object> auth = new HttpEntity<>(RestHelper.generateHeadersForUser("teamlead-1"));
|
||||||
|
|
||||||
|
ResponseEntity<WorkbasketAccessItemPagedRepresentationModel> response =
|
||||||
|
TEMPLATE.exchange(
|
||||||
|
url, HttpMethod.GET, auth, WORKBASKET_ACCESS_ITEM_PAGED_REPRESENTATION_MODEL_TYPE);
|
||||||
|
assertThat(response.getBody()).isNotNull();
|
||||||
|
assertThat(response.getBody().getContent()).hasSize(0);
|
||||||
|
assertThat(response.getBody().getPageMetadata().getSize()).isEqualTo(9);
|
||||||
|
assertThat(response.getBody().getPageMetadata().getTotalElements()).isEqualTo(0);
|
||||||
|
assertThat(response.getBody().getPageMetadata().getTotalPages()).isEqualTo(0);
|
||||||
|
assertThat(response.getBody().getPageMetadata().getNumber()).isEqualTo(1);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void should_DeleteAllAccessItemForUser_ifValidAccessIdOfUserIsSupplied() {
|
void should_DeleteAllAccessItemForUser_ifValidAccessIdOfUserIsSupplied() {
|
||||||
String url =
|
String url =
|
||||||
|
|
Loading…
Reference in New Issue