Skip to content

Commit f358bcb

Browse files
committed
add
1 parent a474f40 commit f358bcb

File tree

2 files changed

+29
-23
lines changed

2 files changed

+29
-23
lines changed

app/src/main/java/hexlet/code/schemas/MapSchema.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
import java.util.Map;
44

5-
public class MapSchema<K> extends BaseSchema<Map<K, ?>> {
5+
public class MapSchema extends BaseSchema<Map<String, String>> {
66
private Integer size;
7-
private Map<K, BaseSchema<?>> shapeSchemas;
7+
private Map<String, BaseSchema<?>> shapeSchemas;
88

9-
public MapSchema<K> sizeof(int newSize) {
9+
public MapSchema sizeof(int newSize) {
1010
this.size = newSize;
1111
return this;
1212
}
1313

14-
public MapSchema<K> shape(Map<K, ? extends BaseSchema<?>> schemas) {
15-
this.shapeSchemas = (Map<K, BaseSchema<?>>) schemas;
14+
public MapSchema shape(Map<String, BaseSchema<?>> schemas) {
15+
this.shapeSchemas = schemas;
1616
return this;
1717
}
1818

@@ -34,8 +34,8 @@ public boolean isValid(Object value) {
3434
}
3535

3636
if (shapeSchemas != null) {
37-
for (Map.Entry<K, BaseSchema<?>> entry : shapeSchemas.entrySet()) {
38-
K key = entry.getKey();
37+
for (Map.Entry<String, BaseSchema<?>> entry : shapeSchemas.entrySet()) {
38+
String key = entry.getKey();
3939
BaseSchema<?> schema = entry.getValue();
4040

4141
if (!mapValue.containsKey(key)) {

app/src/test/java/hexlet/code/MapSchemaTest.java

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
public class MapSchemaTest {
1313

1414
@Test
15-
public void testShapeValidationWithStringKeys() {
15+
public void testShapeValidation() {
1616
Validator validator = new Validator();
17-
MapSchema<String> schema = validator.map();
17+
MapSchema schema = validator.map();
1818

1919
Map<String, BaseSchema<?>> schemas = new HashMap<>();
2020
schemas.put("firstName", validator.string().required());
@@ -34,27 +34,33 @@ public void testShapeValidationWithStringKeys() {
3434
human2.put("lastName", null);
3535
human2.put("age", 30);
3636
assertFalse(schema.isValid(human2));
37+
38+
Map<String, Object> human3 = new HashMap<>();
39+
human3.put("firstName", "Anna");
40+
human3.put("lastName", "B");
41+
human3.put("age", -5);
42+
assertFalse(schema.isValid(human3));
43+
44+
Map<String, Object> human4 = new HashMap<>();
45+
human4.put("firstName", "");
46+
human4.put("lastName", "Brown");
47+
human4.put("age", 25);
48+
assertFalse(schema.isValid(human4));
3749
}
3850

3951
@Test
40-
public void testShapeValidationWithIntegerKeys() {
52+
public void testMissingKeys() {
4153
Validator validator = new Validator();
42-
MapSchema<Integer> schema = validator.map();
54+
MapSchema schema = validator.map();
4355

44-
Map<Integer, BaseSchema<?>> schemas = new HashMap<>();
45-
schemas.put(1, validator.string().required());
46-
schemas.put(2, validator.number().positive());
56+
Map<String, BaseSchema<?>> schemas = new HashMap<>();
57+
schemas.put("firstName", validator.string().required());
58+
schemas.put("lastName", validator.string().required());
4759

4860
schema.shape(schemas);
4961

50-
Map<Integer, Object> data1 = new HashMap<>();
51-
data1.put(1, "Hello");
52-
data1.put(2, 42);
53-
assertTrue(schema.isValid(data1));
54-
55-
Map<Integer, Object> data2 = new HashMap<>();
56-
data2.put(1, "");
57-
data2.put(2, -5);
58-
assertFalse(schema.isValid(data2));
62+
Map<String, Object> human = new HashMap<>();
63+
human.put("firstName", "John");
64+
assertFalse(schema.isValid(human));
5965
}
6066
}

0 commit comments

Comments
 (0)