@@ -63,4 +63,46 @@ public void testCombinedRules() {
6363 data .put ("key2" , "value2" );
6464 assertTrue (schema .isValid (data ));
6565 }
66+
67+ @ Test
68+ public void testShape () {
69+ Validator v = new Validator ();
70+ MapSchema schema = v .map ();
71+
72+ Map <String , BaseSchema <?>> schemas = new HashMap <>();
73+ schemas .put ("firstName" , v .string ().required ());
74+ schemas .put ("lastName" , v .string ().required ().minLength (2 ));
75+
76+ schema .shape (schemas );
77+
78+ Map <String , String > human1 = new HashMap <>();
79+ human1 .put ("firstName" , "John" );
80+ human1 .put ("lastName" , "Smith" );
81+ assertTrue (schema .isValid (human1 )); // true
82+
83+ Map <String , String > human2 = new HashMap <>();
84+ human2 .put ("firstName" , "John" );
85+ human2 .put ("lastName" , null );
86+ assertFalse (schema .isValid (human2 )); // false
87+
88+ Map <String , String > human3 = new HashMap <>();
89+ human3 .put ("firstName" , "Anna" );
90+ human3 .put ("lastName" , "B" );
91+ assertFalse (schema .isValid (human3 )); // false
92+
93+ Map <String , String > human4 = new HashMap <>();
94+ human4 .put ("firstName" , "Alice" );
95+ human4 .put ("lastName" , "Johnson" );
96+ assertTrue (schema .isValid (human4 )); // true
97+
98+ Map <String , String > human5 = new HashMap <>();
99+ human5 .put ("firstName" , null );
100+ human5 .put ("lastName" , "Doe" );
101+ assertFalse (schema .isValid (human5 )); // false
102+
103+ Map <String , String > human6 = new HashMap <>();
104+ human6 .put ("firstName" , "Bob" );
105+ human6 .put ("lastName" , "" );
106+ assertFalse (schema .isValid (human6 )); // false
107+ }
66108}
0 commit comments