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 .InvalidDataTypeException ;
6+ import com .relogiclabs .json .schema .exception .JsonSchemaException ;
7+ import org .junit .jupiter .api .Test ;
8+
9+ import static com .relogiclabs .json .schema .message .ErrorCode .DTYP01 ;
10+ import static com .relogiclabs .json .schema .message .ErrorCode .DTYP04 ;
11+ import static com .relogiclabs .json .schema .message .ErrorCode .DUBL01 ;
12+ import static com .relogiclabs .json .schema .message .ErrorCode .FLOT01 ;
13+ import static org .junit .jupiter .api .Assertions .assertEquals ;
14+ import static org .junit .jupiter .api .Assertions .assertThrows ;
15+
16+ public class OtherTests {
17+ @ Test
18+ public void When_DataTypeNotValid_ExceptionThrown () {
19+ var schema = "#abcd" ;
20+ var json = "0" ;
21+
22+ //JsonSchema.IsValid(schema, json);
23+ var exception = assertThrows (InvalidDataTypeException .class ,
24+ () -> JsonAssert .isValid (schema , json ));
25+ assertEquals (DTYP01 , exception .getCode ());
26+ exception .printStackTrace ();
27+ }
28+
29+ @ Test
30+ public void When_JsonNotFloat_ExceptionThrown () {
31+ var schema = "#float" ;
32+ var json = "2.5E10" ;
33+
34+ JsonSchema .isValid (schema , json );
35+ var exception = assertThrows (JsonSchemaException .class ,
36+ () -> JsonAssert .isValid (schema , json ));
37+ assertEquals (DTYP04 , exception .getCode ());
38+ exception .printStackTrace ();
39+ }
40+
41+ @ Test
42+ public void When_JsonNotDouble_ExceptionThrown () {
43+ var schema = "#double" ;
44+ var json = "\" string\" " ;
45+
46+ JsonSchema .isValid (schema , json );
47+ var exception = assertThrows (JsonSchemaException .class ,
48+ () -> JsonAssert .isValid (schema , json ));
49+ assertEquals (DTYP04 , exception .getCode ());
50+ exception .printStackTrace ();
51+ }
52+
53+ @ Test
54+ public void When_JsonNotNull_ExceptionThrown () {
55+ var schema = "#null" ;
56+ var json = "0" ;
57+
58+ JsonSchema .isValid (schema , json );
59+ var exception = assertThrows (JsonSchemaException .class ,
60+ () -> JsonAssert .isValid (schema , json ));
61+ assertEquals (DTYP04 , exception .getCode ());
62+ exception .printStackTrace ();
63+ }
64+
65+ @ Test
66+ public void When_JsonValueNotEqualForFloat_ExceptionThrown () {
67+ var schema = "3.5 #float" ;
68+ var json = "2.5" ;
69+
70+ JsonSchema .isValid (schema , json );
71+ var exception = assertThrows (JsonSchemaException .class ,
72+ () -> JsonAssert .isValid (schema , json ));
73+ assertEquals (FLOT01 , exception .getCode ());
74+ exception .printStackTrace ();
75+ }
76+
77+ @ Test
78+ public void When_JsonValueNotEqualForDouble_ExceptionThrown () {
79+ var schema = "2.5E0 #double" ;
80+ var json = "2.5E1" ;
81+
82+ JsonSchema .isValid (schema , json );
83+ var exception = assertThrows (JsonSchemaException .class ,
84+ () -> JsonAssert .isValid (schema , json ));
85+ assertEquals (DUBL01 , exception .getCode ());
86+ exception .printStackTrace ();
87+ }
88+
89+ @ Test
90+ public void When_NonStaticValidMethodWithWrongJson_ExceptionThrown () {
91+ var schema =
92+ """
93+ {
94+ "key1": #array,
95+ "key2": #array
96+ }
97+ """ ;
98+ var json1 =
99+ """
100+ {
101+ "key1": [1, 10, 100],
102+ "key2": [100, 1000, [10, 10000]]
103+ }
104+ """ ;
105+ var json2 =
106+ """
107+ {
108+ "key1": [1, 10, 100],
109+ "key2": "string"
110+ }
111+ """ ;
112+ var jsonAssert = new JsonAssert (schema );
113+ jsonAssert .isValid (json1 );
114+ var exception = assertThrows (JsonSchemaException .class ,
115+ () -> jsonAssert .isValid (json2 ));
116+ assertEquals (DTYP04 , exception .getCode ());
117+ exception .printStackTrace ();
118+ }
119+ }
0 commit comments