Skip to content

Commit e9f8dd3

Browse files
committed
Initial implementation of ObjectSchema#describePropertiesTo()
1 parent 8b27fdc commit e9f8dd3

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

core/src/main/java/org/everit/json/schema/ObjectSchema.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.everit.json.schema;
1717

18+
import org.everit.json.schema.internal.JSONPrinter;
1819
import org.json.JSONObject;
1920

2021
import java.util.*;
@@ -459,6 +460,20 @@ public int hashCode() {
459460
minProperties, maxProperties, propertyDependencies, schemaDependencies, requiresObject, patternProperties);
460461
}
461462

463+
@Override
464+
void describePropertiesTo(JSONPrinter writer) {
465+
writer.key("type").value("object");
466+
if (!propertySchemas.isEmpty()) {
467+
writer.key("properties");
468+
writer.object();
469+
propertySchemas.entrySet().forEach(entry -> {
470+
writer.key(entry.getKey());
471+
entry.getValue().describeTo(writer);
472+
});
473+
writer.endObject();
474+
}
475+
}
476+
462477
@Override
463478
protected boolean canEqual(Object other) {
464479
return other instanceof ObjectSchema;

core/src/test/java/org/everit/json/schema/ObjectSchemaTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@
1717

1818
import nl.jqno.equalsverifier.EqualsVerifier;
1919
import nl.jqno.equalsverifier.Warning;
20+
import org.everit.json.schema.loader.SchemaLoader;
2021
import org.json.JSONObject;
2122
import org.json.JSONTokener;
2223
import org.junit.Assert;
24+
import org.junit.Ignore;
2325
import org.junit.Test;
2426

27+
import static org.junit.Assert.assertTrue;
28+
2529
public class ObjectSchemaTest {
2630

2731
private static final JSONObject OBJECTS = ResourceLoader.DEFAULT.readObj("objecttestcases.json");
@@ -276,4 +280,18 @@ public void equalsVerifier() {
276280
.suppress(Warning.STRICT_INHERITANCE)
277281
.verify();
278282
}
283+
284+
@Test
285+
public void toStringTest() {
286+
JSONObject rawSchemaJson = ResourceLoader.DEFAULT.readObj("tostring/objectschema.json");
287+
String actual = SchemaLoader.load(rawSchemaJson).toString();
288+
assertTrue(ObjectComparator.deepEquals(rawSchemaJson, new JSONObject(actual)));
289+
}
290+
291+
292+
293+
@Test @Ignore
294+
public void toStringNoExplicitType() {
295+
296+
}
279297
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"type" : "object",
3+
"properties": {
4+
"numprop" : {
5+
"type" : "number"
6+
}
7+
}
8+
}

0 commit comments

Comments
 (0)