|
1 | | -package hexlet.code; |
| 1 | +package hexlet.code.schemas; |
2 | 2 |
|
3 | | -import hexlet.code.schemas.MapSchema; |
4 | | -import hexlet.code.schemas.BaseSchema; |
5 | 3 | import org.junit.jupiter.api.Test; |
6 | 4 | import java.util.HashMap; |
7 | 5 | import java.util.Map; |
8 | | - |
| 6 | +import hexlet.code.Validator; |
9 | 7 | import static org.junit.jupiter.api.Assertions.assertFalse; |
10 | 8 | import static org.junit.jupiter.api.Assertions.assertTrue; |
11 | 9 |
|
12 | 10 | public class MapSchemaTest { |
13 | 11 |
|
14 | 12 | @Test |
15 | | - public void testShapeValidation() { |
16 | | - Validator validator = new Validator(); |
17 | | - MapSchema schema = validator.map(); |
18 | | - |
19 | | - Map<String, BaseSchema<?>> schemas = new HashMap<>(); |
20 | | - schemas.put("firstName", validator.string().required()); |
21 | | - schemas.put("lastName", validator.string().required().minLength(2)); |
22 | | - schemas.put("age", validator.number().positive()); |
23 | | - |
24 | | - schema.shape(schemas); |
25 | | - |
26 | | - Map<String, Object> human1 = new HashMap<>(); |
27 | | - human1.put("firstName", "John"); |
28 | | - human1.put("lastName", "Smith"); |
29 | | - human1.put("age", 30); |
30 | | - assertTrue(schema.isValid(human1)); |
31 | | - |
32 | | - Map<String, Object> human2 = new HashMap<>(); |
33 | | - human2.put("firstName", "John"); |
34 | | - human2.put("lastName", null); |
35 | | - human2.put("age", 30); |
36 | | - assertFalse(schema.isValid(human2)); |
| 13 | + public void testRequired() { |
| 14 | + MapSchema mapSchema = new MapSchema().required(); |
| 15 | + |
| 16 | + assertTrue(mapSchema.isValid(new HashMap<>())); |
| 17 | + assertFalse(mapSchema.isValid(null)); |
37 | 18 | } |
38 | 19 |
|
39 | 20 | @Test |
40 | | - public void testMissingKeys() { |
41 | | - Validator validator = new Validator(); |
42 | | - MapSchema schema = validator.map(); |
| 21 | + public void testSizeof() { |
| 22 | + MapSchema mapSchema = new MapSchema().sizeof(2); |
| 23 | + |
| 24 | + Map<String, Object> map = new HashMap<>(); |
| 25 | + map.put("key1", "value1"); |
| 26 | + map.put("key2", "value2"); |
| 27 | + |
| 28 | + assertTrue(mapSchema.isValid(map)); |
| 29 | + |
| 30 | + map.put("key3", "value3"); |
| 31 | + assertFalse(mapSchema.isValid(map)); |
| 32 | + } |
| 33 | + |
| 34 | + @Test |
| 35 | + public void testShape() { |
| 36 | + MapSchema mapSchema = new MapSchema().shape(Map.of( |
| 37 | + "name", Validator.string().required().minLength(3), |
| 38 | + "age", Validator.number().required().range(18, 99) |
| 39 | + )); |
| 40 | + |
| 41 | + Map<String, Object> validData = new HashMap<>(); |
| 42 | + validData.put("name", "John"); |
| 43 | + validData.put("age", 25); |
43 | 44 |
|
44 | | - Map<String, BaseSchema<?>> schemas = new HashMap<>(); |
45 | | - schemas.put("firstName", validator.string().required()); |
46 | | - schemas.put("lastName", validator.string().required()); |
| 45 | + assertTrue(mapSchema.isValid(validData)); |
47 | 46 |
|
48 | | - schema.shape(schemas); |
| 47 | + Map<String, Object> invalidData = new HashMap<>(); |
| 48 | + invalidData.put("name", "Jo"); |
| 49 | + invalidData.put("age", 17); |
49 | 50 |
|
50 | | - Map<String, Object> human = new HashMap<>(); |
51 | | - human.put("firstName", "John"); |
52 | | - assertFalse(schema.isValid(human)); |
| 51 | + assertFalse(mapSchema.isValid(invalidData)); |
53 | 52 | } |
54 | 53 | } |
0 commit comments