package com.fasterxml.jackson.databind.jsonschema;
import java.util.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.jsonschema.JsonSchema;
/**
* Trivial test to ensure <code>JsonSchema</code> can be also deserialized
*/
@SuppressWarnings("deprecation")
public class TestReadJsonSchema
extends com.fasterxml.jackson.databind.BaseMapTest
{
enum SchemaEnum { YES, NO; }
static class Schemable {
public String name;
public char[] nameBuffer;
// We'll include tons of stuff, just to force generation of schema
public boolean[] states;
public byte[] binaryData;
public short[] shorts;
public int[] ints;
public long[] longs;
public float[] floats;
public double[] doubles;
public Object[] objects;
public JsonSerializable someSerializable;
public Iterable<Object> iterableOhYeahBaby;
public List<String> extra;
public ArrayList<String> extra2;
public Iterator<String[]> extra3;
public Map<String,Double> sizes;
public EnumMap<SchemaEnum,List<String>> whatever;
SchemaEnum testEnum;
public EnumSet<SchemaEnum> testEnums;
}
/**
* Verifies that a simple schema that is serialized can be
* deserialized back to equal schema instance
*/
public void testDeserializeSimple() throws Exception
{
ObjectMapper mapper = new ObjectMapper();
JsonSchema schema = mapper.generateJsonSchema(Schemable.class);
assertNotNull(schema);
String schemaStr = mapper.writeValueAsString(schema);
assertNotNull(schemaStr);
JsonSchema result = mapper.readValue(schemaStr, JsonSchema.class);
assertEquals("Trying to read from '"+schemaStr+"'", schema, result);
}
}