Skip to content

Commit 547aa3d

Browse files
committed
🎨 Refactor unit test
1 parent d20bebd commit 547aa3d

File tree

9 files changed

+760
-603
lines changed

9 files changed

+760
-603
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package io.asfjava.ui.core.schema;
2+
3+
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
4+
import static org.hamcrest.Matchers.equalTo;
5+
import static org.hamcrest.Matchers.hasItem;
6+
import static org.hamcrest.Matchers.hasSize;
7+
8+
import java.io.Serializable;
9+
10+
import org.junit.Assert;
11+
import org.junit.Test;
12+
13+
import com.fasterxml.jackson.core.JsonProcessingException;
14+
import com.fasterxml.jackson.databind.ObjectMapper;
15+
16+
import io.asfjava.ui.core.form.CheckBox;
17+
import io.asfjava.ui.dto.UiForm;
18+
19+
public class CheckBoxFormTest {
20+
21+
@Test
22+
public void testGenerate_CheckBox() throws JsonProcessingException {
23+
UiForm ui = UiFormSchemaGenerator.get().generate(CheckBoxForm.class);
24+
String json = new ObjectMapper().writeValueAsString(ui);
25+
Assert.assertThat(json, hasJsonPath("$.schema.properties.color.title", equalTo("Color")));
26+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')]", hasSize(1)));
27+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].multiple", hasItem(false)));
28+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].required", hasItem(true)));
29+
Assert.assertThat(json,
30+
hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Red')].value", hasItem("red")));
31+
Assert.assertThat(json,
32+
hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Blue')].value", hasItem("blue")));
33+
Assert.assertThat(json,
34+
hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Green')].value", hasItem("green")));
35+
}
36+
37+
@Test
38+
public void testGenerate_CheckBox_WithCustomValuesContainer() throws JsonProcessingException {
39+
UiForm ui = UiFormSchemaGenerator.get().generate(CheckBoxForm2.class);
40+
String json = new ObjectMapper().writeValueAsString(ui);
41+
Assert.assertThat(json, hasJsonPath("$.schema.properties.color.title", equalTo("Color")));
42+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')]", hasSize(1)));
43+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].multiple", hasItem(true)));
44+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].required", hasItem(false)));
45+
Assert.assertThat(json,
46+
hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Red')].value", hasItem("red")));
47+
Assert.assertThat(json,
48+
hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Blue')].value", hasItem("blue")));
49+
Assert.assertThat(json,
50+
hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Green')].value", hasItem("green")));
51+
}
52+
}
53+
54+
class CheckBoxForm implements Serializable {
55+
56+
@CheckBox(title = "Color", values = { "red", "blue", "green" }, defaultvalue = "red", required = true)
57+
private String color;
58+
59+
public String getColor() {
60+
return color;
61+
}
62+
}
63+
64+
class CheckBoxForm2 implements Serializable {
65+
66+
@CheckBox(title = "Color", titleMap = MyCheckBoxValues.class, defaultvalue = "red", multiple = true)
67+
private String color;
68+
69+
public String getColor() {
70+
return color;
71+
}
72+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package io.asfjava.ui.core.schema;
2+
3+
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
4+
import static org.hamcrest.Matchers.equalTo;
5+
import static org.hamcrest.Matchers.hasItem;
6+
import static org.hamcrest.Matchers.hasSize;
7+
8+
import java.io.Serializable;
9+
10+
import org.junit.Assert;
11+
import org.junit.Test;
12+
13+
import com.fasterxml.jackson.core.JsonProcessingException;
14+
import com.fasterxml.jackson.databind.ObjectMapper;
15+
16+
import io.asfjava.ui.core.form.ComboBox;
17+
import io.asfjava.ui.dto.UiForm;
18+
19+
public class ComboBoxFormTest {
20+
21+
@Test
22+
public void testGenerate_ComboBox() throws JsonProcessingException {
23+
UiForm ui = UiFormSchemaGenerator.get().generate(ComboBoxForm.class);
24+
25+
String json = new ObjectMapper().writeValueAsString(ui);
26+
Assert.assertThat(json, hasJsonPath("$.schema.properties.currency.title", equalTo("Currency")));
27+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')]", hasSize(1)));
28+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].disabled", hasItem(false)));
29+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].multiple", hasItem(false)));
30+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].required", hasItem(true)));
31+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].autofocus", hasItem(false)));
32+
Assert.assertThat(json,
33+
hasJsonPath("$.form[?(@.key=='currency')].titleMap[?(@.name=='Euro')].value", hasItem("euro")));
34+
Assert.assertThat(json,
35+
hasJsonPath("$.form[?(@.key=='currency')].titleMap[?(@.name=='Dollar')].value", hasItem("dollar")));
36+
37+
}
38+
39+
@Test
40+
public void testGenerate_ComboBox_WithCustomValuesContainer() throws JsonProcessingException {
41+
UiForm ui = UiFormSchemaGenerator.get().generate(ComboBoxForm2.class);
42+
43+
String json = new ObjectMapper().writeValueAsString(ui);
44+
Assert.assertThat(json, hasJsonPath("$.schema.properties.gender.title", equalTo("Gender")));
45+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')]", hasSize(1)));
46+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].disabled", hasItem(false)));
47+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].multiple", hasItem(false)));
48+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].required", hasItem(false)));
49+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].autofocus", hasItem(false)));
50+
Assert.assertThat(json,
51+
hasJsonPath("$.form[?(@.key=='gender')].titleMap[?(@.name=='Male')].value", hasItem("male")));
52+
Assert.assertThat(json,
53+
hasJsonPath("$.form[?(@.key=='gender')].titleMap[?(@.name=='Female')].value", hasItem("female")));
54+
55+
}
56+
57+
}
58+
59+
class ComboBoxForm implements Serializable {
60+
61+
@ComboBox(title = "Currency", values = { "euro", "dollar" }, required = true)
62+
private String currency;
63+
64+
public String getCurrency() {
65+
return currency;
66+
}
67+
}
68+
69+
class ComboBoxForm2 implements Serializable {
70+
71+
@ComboBox(title = "Gender", titleMap = GenderTitleMap.class)
72+
private String gender;
73+
74+
public String getGender() {
75+
return gender;
76+
}
77+
}
78+
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
package io.asfjava.ui.core.schema;
2+
3+
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
4+
import static org.hamcrest.Matchers.equalTo;
5+
import static org.hamcrest.Matchers.hasItem;
6+
import static org.hamcrest.Matchers.hasSize;
7+
8+
import java.io.Serializable;
9+
10+
import org.junit.Assert;
11+
import org.junit.Test;
12+
13+
import com.fasterxml.jackson.core.JsonProcessingException;
14+
import com.fasterxml.jackson.databind.ObjectMapper;
15+
16+
import io.asfjava.ui.core.form.Number;
17+
import io.asfjava.ui.dto.UiForm;
18+
19+
public class NumberFormTest {
20+
21+
@Test
22+
public void testGenerate_Number_For_Integer() throws JsonProcessingException {
23+
UiForm ui = UiFormSchemaGenerator.get().generate(IntegerNumberForm.class);
24+
String json = new ObjectMapper().writeValueAsString(ui);
25+
Assert.assertThat(json, hasJsonPath("$.schema.properties.number.title", equalTo("Integer Number")));
26+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')]", hasSize(1)));
27+
Assert.assertThat(json,
28+
hasJsonPath("$.form[?(@.key=='number')].description", hasItem("This is an integer number")));
29+
Assert.assertThat(json,
30+
hasJsonPath("$.form[?(@.key=='number')].placeholder", hasItem("Integer Number PlaceHolder")));
31+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].validationMessage",
32+
hasItem("this is a validation msg for an integer value")));
33+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].type", hasItem("number")));
34+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].notitle", hasItem(true)));
35+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].readonly", hasItem(true)));
36+
37+
}
38+
39+
@Test
40+
public void testGenerate_Number_For_Long() throws JsonProcessingException {
41+
UiForm ui = UiFormSchemaGenerator.get().generate(LongNumberForm.class);
42+
String json = new ObjectMapper().writeValueAsString(ui);
43+
Assert.assertThat(json, hasJsonPath("$.schema.properties.number.title", equalTo("Long Number")));
44+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')]", hasSize(1)));
45+
Assert.assertThat(json,
46+
hasJsonPath("$.form[?(@.key=='number')].description", hasItem("This is a long number")));
47+
Assert.assertThat(json,
48+
hasJsonPath("$.form[?(@.key=='number')].placeholder", hasItem("Long Number PlaceHolder")));
49+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].validationMessage",
50+
hasItem("this is a validation msg for long value")));
51+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].type", hasItem("number")));
52+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].notitle", hasItem(true)));
53+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].readonly", hasItem(true)));
54+
55+
}
56+
57+
58+
@Test
59+
public void testGenerate_Number_For_Double() throws JsonProcessingException {
60+
UiForm ui = UiFormSchemaGenerator.get().generate(DoubleNumberForm.class);
61+
String json = new ObjectMapper().writeValueAsString(ui);
62+
Assert.assertThat(json, hasJsonPath("$.schema.properties.number.title", equalTo("Double Number")));
63+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')]", hasSize(1)));
64+
Assert.assertThat(json,
65+
hasJsonPath("$.form[?(@.key=='number')].description", hasItem("This is a double number")));
66+
Assert.assertThat(json,
67+
hasJsonPath("$.form[?(@.key=='number')].placeholder", hasItem("Double Number PlaceHolder")));
68+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].validationMessage",
69+
hasItem("this is a validation msg for double value")));
70+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].type", hasItem("number")));
71+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].notitle", hasItem(true)));
72+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].readonly", hasItem(true)));
73+
74+
}
75+
76+
@Test
77+
public void testGenerate_Number_WithRightAddon() throws JsonProcessingException {
78+
UiForm ui = UiFormSchemaGenerator.get().generate(NumberFormRight.class);
79+
String json = new ObjectMapper().writeValueAsString(ui);
80+
//Assert.assertThat(json, hasJsonPath("$.schema.properties.number.title",equalTo("Number")));
81+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')]",hasSize(1)));
82+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].description",hasItem("This is a number")));
83+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].placeholder",hasItem("Number of children")));
84+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].validationMessage",hasItem("this is a validation msg")));
85+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].type",hasItem("number")));
86+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].notitle",hasItem(true)));
87+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].readonly",hasItem(true)));
88+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].fieldAddonRight",hasItem("@")));
89+
90+
}
91+
92+
@Test
93+
public void testGenerate_Number_WithLeftAddon() throws JsonProcessingException {
94+
UiForm ui = UiFormSchemaGenerator.get().generate(NumberFormLeft.class);
95+
String json = new ObjectMapper().writeValueAsString(ui);
96+
//Assert.assertThat(json, hasJsonPath("$.schema.properties.number.title",equalTo("Number")));
97+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')]",hasSize(1)));
98+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].description",hasItem("This is a number")));
99+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].placeholder",hasItem("Number of children")));
100+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].validationMessage",hasItem("this is a validation msg")));
101+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].type",hasItem("number")));
102+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].notitle",hasItem(true)));
103+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].readonly",hasItem(true)));
104+
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].fieldAddonLeft",hasItem("@")));
105+
106+
}
107+
108+
}
109+
110+
class IntegerNumberForm implements Serializable {
111+
112+
@Number(title = "Integer Number", placeHolder = "Integer Number PlaceHolder", description = "This is an integer number", noTitle = true, validationMessage = "this is a validation msg for an integer value", readOnly = true)
113+
private Integer number;
114+
115+
public Integer getNumber() {
116+
return number;
117+
}
118+
}
119+
120+
class NumberFormRight implements Serializable {
121+
122+
@Number(title = "Number of children", placeHolder = "Number of children", fieldAddonRight = "@", description = "This is a number", noTitle = true, validationMessage = "this is a validation msg", readOnly = true)
123+
private Integer number;
124+
125+
public Integer getNumber() {
126+
return number;
127+
}
128+
}
129+
130+
class LongNumberForm implements Serializable {
131+
132+
@Number(title = "Long Number", placeHolder = "Long Number PlaceHolder", description = "This is a long number", noTitle = true, validationMessage = "this is a validation msg for long value", readOnly = true)
133+
private Long number;
134+
135+
public Long getNumber() {
136+
return number;
137+
}
138+
}
139+
140+
class NumberFormLeft implements Serializable {
141+
142+
@Number(title = "Number of children", placeHolder = "Number of children", fieldAddonLeft = "@", description = "This is a number", noTitle = true, validationMessage = "this is a validation msg", readOnly = true)
143+
private Integer number;
144+
145+
public Integer getNumber() {
146+
return number;
147+
}
148+
}
149+
class DoubleNumberForm implements Serializable {
150+
151+
@Number(title = "Double Number", placeHolder = "Double Number PlaceHolder", description = "This is a double number", noTitle = true, validationMessage = "this is a validation msg for double value", readOnly = true)
152+
private Double number;
153+
154+
public Double getNumber() {
155+
return number;
156+
}
157+
}

0 commit comments

Comments
 (0)