Skip to content

Commit 4528518

Browse files
committed
Add test cases for the integer data type
1 parent 28ac3e7 commit 4528518

File tree

2 files changed

+383
-0
lines changed

2 files changed

+383
-0
lines changed
Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
package com.relogiclabs.json.schema.negative;
2+
3+
import com.relogiclabs.json.schema.JsonAssert;
4+
import com.relogiclabs.json.schema.JsonSchema;
5+
import com.relogiclabs.json.schema.exception.JsonSchemaException;
6+
import org.junit.jupiter.api.Test;
7+
8+
import static com.relogiclabs.json.schema.message.ErrorCode.DTYP04;
9+
import static com.relogiclabs.json.schema.message.ErrorCode.DTYP06;
10+
import static com.relogiclabs.json.schema.message.ErrorCode.FUNC06;
11+
import static com.relogiclabs.json.schema.message.ErrorCode.INTE01;
12+
import static com.relogiclabs.json.schema.message.ErrorCode.NEGI01;
13+
import static com.relogiclabs.json.schema.message.ErrorCode.POSI01;
14+
import static com.relogiclabs.json.schema.message.ErrorCode.RANG01;
15+
import static com.relogiclabs.json.schema.message.ErrorCode.RANG04;
16+
import static org.junit.jupiter.api.Assertions.assertEquals;
17+
import static org.junit.jupiter.api.Assertions.assertThrows;
18+
19+
public class IntegerTests {
20+
@Test
21+
public void When_JsonNotInteger_ExceptionThrown() {
22+
var schema = "#integer";
23+
var json = "10.5";
24+
25+
JsonSchema.isValid(schema, json);
26+
var exception = assertThrows(JsonSchemaException.class,
27+
() -> JsonAssert.isValid(schema, json));
28+
assertEquals(DTYP04, exception.getCode());
29+
exception.printStackTrace();
30+
}
31+
32+
@Test
33+
public void When_JsonValueNotEqualForInteger_ExceptionThrown() {
34+
var schema = "10 #integer";
35+
var json = "9";
36+
37+
JsonSchema.isValid(schema, json);
38+
var exception = assertThrows(JsonSchemaException.class,
39+
() -> JsonAssert.isValid(schema, json));
40+
assertEquals(INTE01, exception.getCode());
41+
exception.printStackTrace();
42+
}
43+
44+
@Test
45+
public void When_JsonNotIntegerInObject_ExceptionThrown() {
46+
var schema =
47+
"""
48+
{
49+
"key1": #integer,
50+
"key2": #integer,
51+
"key3": #integer
52+
}
53+
""";
54+
var json =
55+
"""
56+
{
57+
"key1": null,
58+
"key2": "value1",
59+
"key3": 4000.45
60+
}
61+
""";
62+
JsonSchema.isValid(schema, json);
63+
var exception = assertThrows(JsonSchemaException.class,
64+
() -> JsonAssert.isValid(schema, json));
65+
assertEquals(DTYP04, exception.getCode());
66+
exception.printStackTrace();
67+
}
68+
69+
@Test
70+
public void When_JsonNotIntegerInArray_ExceptionThrown() {
71+
var schema =
72+
"""
73+
[#integer, #integer, #integer]
74+
""";
75+
var json =
76+
"""
77+
[true, -4568.57, 100]
78+
""";
79+
JsonSchema.isValid(schema, json);
80+
var exception = assertThrows(JsonSchemaException.class,
81+
() -> JsonAssert.isValid(schema, json));
82+
assertEquals(DTYP04, exception.getCode());
83+
exception.printStackTrace();
84+
}
85+
86+
@Test
87+
public void When_NestedJsonNotIntegerInArray_ExceptionThrown() {
88+
var schema =
89+
"""
90+
#integer*
91+
""";
92+
var json =
93+
"""
94+
[null, 2.2, "40000000"]
95+
""";
96+
JsonSchema.isValid(schema, json);
97+
var exception = assertThrows(JsonSchemaException.class,
98+
() -> JsonAssert.isValid(schema, json));
99+
assertEquals(DTYP06, exception.getCode());
100+
exception.printStackTrace();
101+
}
102+
103+
@Test
104+
public void When_NestedJsonNotIntegerInObject_ExceptionThrown() {
105+
var schema =
106+
"""
107+
#integer*
108+
""";
109+
var json =
110+
"""
111+
{
112+
"key1": "value1",
113+
"key2": false,
114+
"key3": "-50000"
115+
}
116+
""";
117+
JsonSchema.isValid(schema, json);
118+
var exception = assertThrows(JsonSchemaException.class,
119+
() -> JsonAssert.isValid(schema, json));
120+
assertEquals(DTYP06, exception.getCode());
121+
exception.printStackTrace();
122+
}
123+
124+
@Test
125+
public void When_NestedRangeWithJsonNotIntegerInObject_ExceptionThrown() {
126+
var schema =
127+
"""
128+
@range*(-100, 200) #integer*
129+
""";
130+
var json =
131+
"""
132+
{
133+
"key1": "value1",
134+
"key2": false,
135+
"key3": "-50000"
136+
}
137+
""";
138+
JsonSchema.isValid(schema, json);
139+
var exception = assertThrows(JsonSchemaException.class,
140+
() -> JsonAssert.isValid(schema, json));
141+
assertEquals(DTYP06, exception.getCode());
142+
exception.printStackTrace();
143+
}
144+
145+
@Test
146+
public void When_NestedRangeWithNonCompositeJsonInObject_ExceptionThrown() {
147+
var schema =
148+
"""
149+
@range*(100, !)
150+
""";
151+
var json =
152+
"""
153+
"value1"
154+
""";
155+
JsonSchema.isValid(schema, json);
156+
var exception = assertThrows(JsonSchemaException.class,
157+
() -> JsonAssert.isValid(schema, json));
158+
assertEquals(FUNC06, exception.getCode());
159+
exception.printStackTrace();
160+
}
161+
162+
@Test
163+
public void When_NestedRangeWithJsonWrongIntegerInObject_ExceptionThrown() {
164+
var schema =
165+
"""
166+
@range*(-100, 100) #integer*
167+
""";
168+
var json =
169+
"""
170+
{
171+
"key1": -100,
172+
"key2": 100,
173+
"key3": -500
174+
}
175+
""";
176+
JsonSchema.isValid(schema, json);
177+
var exception = assertThrows(JsonSchemaException.class,
178+
() -> JsonAssert.isValid(schema, json));
179+
assertEquals(RANG01, exception.getCode());
180+
exception.printStackTrace();
181+
}
182+
183+
@Test
184+
public void When_NestedRangeWithUndefinedAndWrongIntegerInArray_ExceptionThrown() {
185+
var schema =
186+
"""
187+
@range*(!, 400) #integer*
188+
""";
189+
var json =
190+
"""
191+
[100, 500, 900]
192+
""";
193+
JsonSchema.isValid(schema, json);
194+
var exception = assertThrows(JsonSchemaException.class,
195+
() -> JsonAssert.isValid(schema, json));
196+
assertEquals(RANG04, exception.getCode());
197+
exception.printStackTrace();
198+
}
199+
200+
@Test
201+
public void When_NestedPositiveWithWrongIntegerInArray_ExceptionThrown() {
202+
var schema =
203+
"""
204+
@positive* #integer*
205+
""";
206+
var json =
207+
"""
208+
[100, -500, 900]
209+
""";
210+
JsonSchema.isValid(schema, json);
211+
var exception = assertThrows(JsonSchemaException.class,
212+
() -> JsonAssert.isValid(schema, json));
213+
assertEquals(POSI01, exception.getCode());
214+
exception.printStackTrace();
215+
}
216+
217+
@Test
218+
public void When_NestedNegativeWithWrongIntegerInArray_ExceptionThrown() {
219+
var schema =
220+
"""
221+
@negative* #integer*
222+
""";
223+
var json =
224+
"""
225+
[-100, -500, 900]
226+
""";
227+
JsonSchema.isValid(schema, json);
228+
var exception = assertThrows(JsonSchemaException.class,
229+
() -> JsonAssert.isValid(schema, json));
230+
assertEquals(NEGI01, exception.getCode());
231+
exception.printStackTrace();
232+
}
233+
}
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
package com.relogiclabs.json.schema.positive;
2+
3+
import com.relogiclabs.json.schema.JsonAssert;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class IntegerTests {
7+
@Test
8+
public void When_DataTypeInteger_ValidTrue() {
9+
var schema = "#integer";
10+
var json = "10";
11+
JsonAssert.isValid(schema, json);
12+
}
13+
14+
@Test
15+
public void When_DataTypeIntegerInObject_ValidTrue() {
16+
var schema =
17+
"""
18+
{
19+
"key1": #integer,
20+
"key2": #integer,
21+
"key3": #integer
22+
}
23+
""";
24+
var json =
25+
"""
26+
{
27+
"key1": 0,
28+
"key2": 5000,
29+
"key3": 500000
30+
}
31+
""";
32+
JsonAssert.isValid(schema, json);
33+
}
34+
35+
@Test
36+
public void When_DataTypeIntegerInArray_ValidTrue() {
37+
var schema =
38+
"""
39+
[#integer, #integer, #integer]
40+
""";
41+
var json =
42+
"""
43+
[10, -20000, 40000000]
44+
""";
45+
JsonAssert.isValid(schema, json);
46+
}
47+
48+
@Test
49+
public void When_NestedDataTypeIntegerInArray_ValidTrue() {
50+
var schema =
51+
"""
52+
#integer*
53+
""";
54+
var json =
55+
"""
56+
[0, -20000, 40000000]
57+
""";
58+
JsonAssert.isValid(schema, json);
59+
}
60+
61+
@Test
62+
public void When_NestedDataTypeIntegerInObject_ValidTrue() {
63+
var schema =
64+
"""
65+
@range*(-50000, 15000) #integer*
66+
""";
67+
var json =
68+
"""
69+
{
70+
"key1": -500,
71+
"key2": 15000,
72+
"key3": -50000
73+
}
74+
""";
75+
JsonAssert.isValid(schema, json);
76+
}
77+
78+
@Test
79+
public void When_NestedRangeIntegerInObject_ValidTrue() {
80+
var schema =
81+
"""
82+
@range*(100, 200) #integer*
83+
""";
84+
var json =
85+
"""
86+
{
87+
"key1": 100,
88+
"key2": 150,
89+
"key3": 200
90+
}
91+
""";
92+
JsonAssert.isValid(schema, json);
93+
}
94+
95+
@Test
96+
public void When_NestedRangeWithUndefinedIntegerInObject_ValidTrue() {
97+
var schema =
98+
"""
99+
@range*(100, !) #integer*
100+
""";
101+
var json =
102+
"""
103+
{
104+
"key1": 100,
105+
"key2": 1500,
106+
"key3": 200000
107+
}
108+
""";
109+
JsonAssert.isValid(schema, json);
110+
}
111+
112+
@Test
113+
public void When_NestedRangeWithUndefinedIntegerInArray_ValidTrue() {
114+
var schema =
115+
"""
116+
@range*(!, 40000) #integer*
117+
""";
118+
var json =
119+
"""
120+
[10, 2000, 40000]
121+
""";
122+
JsonAssert.isValid(schema, json);
123+
}
124+
125+
@Test
126+
public void When_NestedPositiveWithIntegerInArray_ValidTrue() {
127+
var schema =
128+
"""
129+
@positive* #integer*
130+
""";
131+
var json =
132+
"""
133+
[100, 500, 900]
134+
""";
135+
JsonAssert.isValid(schema, json);
136+
}
137+
138+
@Test
139+
public void When_NestedNegativeWithIntegerInArray_ValidTrue() {
140+
var schema =
141+
"""
142+
@negative* #integer*
143+
""";
144+
var json =
145+
"""
146+
[-100, -500, -900]
147+
""";
148+
JsonAssert.isValid(schema, json);
149+
}
150+
}

0 commit comments

Comments
 (0)