Skip to content
This repository was archived by the owner on Jun 20, 2025. It is now read-only.

Commit cda2952

Browse files
ahalberkamplauraluiz
authored andcommitted
SUPPORT-1511: Add the field ID To the errorMessage. (#678)
* Add the field ID To the errorMessage. * Setting version to 0.23.0 * Remove extra tab * Update version.sbt * Improve junit-tests.
1 parent 3a27f12 commit cda2952

File tree

4 files changed

+71
-6
lines changed

4 files changed

+71
-6
lines changed

common/app/com/commercetools/sunrise/common/forms/ErrorBean.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ public class ErrorBean extends Base {
66

77
private String message;
88

9+
private String field;
10+
11+
912
public ErrorBean() {
1013
}
1114

12-
public ErrorBean(final String message) {
15+
public ErrorBean(final String field, final String message) {
16+
this.field = field;
1317
this.message = message;
1418
}
1519

@@ -20,4 +24,12 @@ public String getMessage() {
2024
public void setMessage(final String message) {
2125
this.message = message;
2226
}
27+
28+
public String getField() {
29+
return field;
30+
}
31+
32+
public void setField(String field) {
33+
this.field = field;
34+
}
2335
}

common/app/com/commercetools/sunrise/common/forms/ErrorsBean.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ public class ErrorsBean extends Base {
1515
public ErrorsBean() {
1616
}
1717

18-
public ErrorsBean(final String errorMessage) {
19-
this.globalErrors = singletonList(new ErrorBean(errorMessage));
18+
public ErrorsBean(final String errorMessage, final String field) {
19+
this.globalErrors = singletonList(new ErrorBean(field, errorMessage));
2020
}
2121

2222
@Deprecated
@@ -25,7 +25,7 @@ public ErrorsBean(final List<Form<?>> filledForms) {
2525
filledForms.forEach(filledForm ->
2626
filledForm.errors().forEach((field, errors) ->
2727
errors.forEach(error ->
28-
globalErrors.add(new ErrorBean(error.key() + ": " + error.message())))));
28+
globalErrors.add(new ErrorBean(field, error.key() + ": " + error.message())))));
2929
}
3030

3131
@Deprecated

common/app/com/commercetools/sunrise/common/template/engine/handlebars/PlayJavaFormResolver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ private boolean isFalsy(@Nullable final String value) {
5353
return value != null && value.equals("false");
5454
}
5555

56-
private ErrorsBean extractErrors(@Nullable final Form<?> form) {
56+
ErrorsBean extractErrors(@Nullable final Form<?> form) {
5757
final ErrorsBean errorsBean = new ErrorsBean();
5858
final List<ErrorBean> errorList = new ArrayList<>();
5959
if (form != null) {
6060
form.errors().forEach((field, errors) ->
6161
errors.forEach(error -> {
6262
final String errorMessage = errorFormatter.format(locales, error);
63-
errorList.add(new ErrorBean(errorMessage));
63+
errorList.add(new ErrorBean(field, errorMessage));
6464
}));
6565
}
6666
errorsBean.setGlobalErrors(errorList);
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.commercetools.sunrise.common.template.engine.handlebars;
2+
3+
import com.commercetools.sunrise.common.forms.ErrorBean;
4+
import com.commercetools.sunrise.common.forms.ErrorsBean;
5+
import com.commercetools.sunrise.common.utils.ErrorFormatter;
6+
import com.google.common.collect.Maps;
7+
import org.junit.Test;
8+
import org.mockito.Mockito;
9+
import play.data.Form;
10+
import play.data.validation.ValidationError;
11+
12+
import java.util.*;
13+
import java.util.function.Predicate;
14+
15+
import static java.util.Collections.singletonList;
16+
import static org.assertj.core.api.Assertions.assertThat;
17+
18+
public class PlayJavaFormResolverTest {
19+
20+
PlayJavaFormResolver formResolver = new PlayJavaFormResolver(singletonList(Locale.ENGLISH), (locales, message) ->
21+
message);
22+
23+
@Test
24+
public void extractErrors() throws Exception {
25+
String errorField1 = "field1";
26+
String errorField2 = "field2";
27+
Form form = formWithSomeErrorsForFields(errorField1, errorField2);
28+
ErrorsBean result = formResolver.extractErrors(form);
29+
30+
List<ErrorBean> errors = result.getGlobalErrors();
31+
checkError(errors.get(0), errorField1, "errorkey1", "errorMessage1");
32+
checkError(errors.get(1), errorField1, "errorkey2", "errorMessage2");
33+
checkError(errors.get(2), errorField2, "errorkey21", "errorMessage21");
34+
}
35+
36+
private void checkError(ErrorBean error, String field, String key, String message) {
37+
assertThat(error.getField()).isEqualTo(field);
38+
assertThat(error.getMessage()).isEqualTo(message + ": " + key);
39+
40+
}
41+
42+
private Form formWithSomeErrorsForFields(String field1, String field2) {
43+
44+
Form form = Mockito.mock(Form.class);
45+
Map<String, List<ValidationError>> errorMap = new HashMap<String, List<ValidationError>>();
46+
errorMap.put(field1, Arrays.asList(
47+
new ValidationError("errorkey1", "errorMessage1"),
48+
new ValidationError("errorkey2", "errorMessage2")));
49+
errorMap.put(field2, Collections.singletonList(new ValidationError("errorkey21", "errorMessage21")));
50+
Mockito.when(form.errors()).thenReturn(errorMap);
51+
return form;
52+
}
53+
}

0 commit comments

Comments
 (0)