@Test(description = "it should deserialize a FloatProperty") public void deserializeFloatProperty() throws IOException { final String json = "{\"type\":\"number\",\"format\":\"float\"}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "number"); assertEquals(p.getFormat(), "float"); assertEquals(p.getClass(), NumberSchema.class); assertEquals(m.writeValueAsString(p), json); }
@Test(description = "it should deserialize a LongProperty") public void deserializeLongProperty() throws IOException { final String json = "{\"type\":\"integer\",\"format\":\"int64\"}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "integer"); assertEquals(p.getFormat(), "int64"); assertEquals(p.getClass(), IntegerSchema.class); assertEquals(m.writeValueAsString(p), json); }
private void assertSub2PropertiesValid(Map<String, Schema> subProperties) { assertEquals(subProperties.size(), 1); for (Map.Entry<String, Schema> entry : subProperties.entrySet()) { final String name = entry.getKey(); final Schema prop = entry.getValue(); if ("d".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int32"); } } }
@Test(description = "it should deserialize a DoubleProperty") public void deserializeDoubleProperty() throws IOException { final String json = "{\"type\":\"number\",\"format\":\"double\"}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "number"); assertEquals(p.getFormat(), "double"); assertEquals(p.getClass(), NumberSchema.class); assertEquals(m.writeValueAsString(p), json); }
@Test(description = "it should deserialize a IntegerProperty") public void deserializeIntegerProperty() throws IOException { final String json = "{\"type\":\"integer\",\"format\":\"int32\"}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "integer"); assertEquals(p.getFormat(), "int32"); assertEquals(p.getClass(), IntegerSchema.class); assertEquals(m.writeValueAsString(p), json); }
@Test(description = "it should deserialize a DateProperty") public void deserializeDateProperty() throws IOException { final String json = "{\"type\":\"string\",\"format\":\"date\"}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "string"); assertEquals(p.getFormat(), "date"); assertEquals(p.getClass(), DateSchema.class); assertEquals(m.writeValueAsString(p), json); }
@Test(description = "it should deserialize a DateTimeProperty") public void deserializeDateTimeProperty() throws IOException { final String json = "{\"type\":\"string\",\"format\":\"date-time\"}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "string"); assertEquals(p.getFormat(), "date-time"); assertEquals(p.getClass(), DateTimeSchema.class); assertEquals(m.writeValueAsString(p), json); }
private void assertSub1PropertiesValid(Map<String, Schema> subProperties) { assertEquals(subProperties.size(), 1); for (Map.Entry<String, Schema> entry : subProperties.entrySet()) { final String name = entry.getKey(); final Schema prop = entry.getValue(); if ("c".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int32"); } } }
@Test(description = "it should deserialize a BooleanSchema") public void deserializeBooleanSchema() throws IOException { final String json = "{\"type\":\"boolean\",\"default\":false}"; final Schema p = m.readValue(json, Schema.class); assertEquals(p.getType(), "boolean"); assertNull(p.getFormat()); assertEquals(p.getClass(), BooleanSchema.class); assertEquals(((BooleanSchema) p).getDefault(), Boolean.FALSE); assertEquals(m.writeValueAsString(p), json); }
@Test(description = "it tests a model with java offset") public void scanModelWithOffset() throws IOException { final Map<String, Schema> models = readAll(ModelWithOffset.class); assertEquals(models.size(), 1); final Schema model = models.get("ModelWithOffset"); Schema property = (Schema) model.getProperties().get("offset"); assertEquals(property.getType(), "string"); assertEquals(property.getFormat(), "date-time"); }
private void assertBasePropertiesValid(Map<String, Schema> baseProperites) { assertEquals(baseProperites.size(), 3); for (Map.Entry<String, Schema> entry : baseProperites.entrySet()) { final String name = entry.getKey(); final Schema prop = entry.getValue(); if ("type".equals(name)) { assertEquals(prop.getType(), "string"); } else if ("a".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int32"); } else if ("b".equals(name)) { assertEquals(prop.getType(), "string"); } } }
private void assertBase2PropertiesValid(Map<String, Schema> baseProperites) { assertEquals(baseProperites.size(), 4); for (Map.Entry<String, Schema> entry : baseProperites.entrySet()) { final String name = entry.getKey(); final Schema prop = entry.getValue(); if ("type".equals(name)) { assertEquals(prop.getType(), "string"); } else if ("a".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int32"); } else if ("b".equals(name)) { assertEquals(prop.getType(), "string"); } else if ("d".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int32"); } } }
} else if ("b".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int32"); } else if ("c".equals(name)) { assertEquals(prop.getType(), "integer"); assertEquals(prop.getFormat(), "int64"); } else if ("d".equals(name)) { assertEquals(prop.getType(), "number"); assertEquals(prop.getFormat(), "float"); } else if ("e".equals(name)) { assertEquals(prop.getType(), "number"); assertEquals(prop.getFormat(), "double"); } else if ("f".equals(name)) { assertEquals(prop.getType(), "string"); assertEquals(prop.getFormat(), "date-time"); } else { fail(String.format("Unknown property '%s'", name));
@Test public void testSimple() throws Exception { final ModelConverter mr = modelResolver(); final Schema model = mr.resolve(new AnnotatedType(ModelWithJodaDateTime.class), new ModelConverterContextImpl(mr), null); assertNotNull(model); final Map<String, Schema> props = model.getProperties(); assertEquals(props.size(), 2); for (Map.Entry<String, Schema> entry : props.entrySet()) { final String name = entry.getKey(); final Schema prop = entry.getValue(); if ("name".equals(name)) { assertEquals(prop.getType(), "string"); } else if ("createdAt".equals(name)) { assertEquals(prop.getType(), "string"); assertEquals(prop.getFormat(), "date-time"); } else { fail(String.format("Unknown property '%s'", name)); } } }
@Test public void testMap() throws Exception { final ModelResolver modelResolver = new ModelResolver(mapper()); final ModelConverterContextImpl context = new ModelConverterContextImpl(modelResolver); final Schema model = context .resolve(new AnnotatedType(MapBean.class)); final Map<String, Schema> props = model.getProperties(); assertEquals(1, props.size()); final Schema prop = props.get("stuff"); assertNotNull(prop); assertEquals(prop.getType(), "object"); final Schema items = (Schema)prop.getAdditionalProperties(); assertNotNull(items); assertEquals(items.getType(), "string"); assertEquals(items.getFormat(), "date-time"); }
@Test public void testComplexMap() throws Exception { ModelResolver resolver = new ModelResolver(mapper()); final ModelConverterContextImpl context = new ModelConverterContextImpl(resolver); context.resolve(new AnnotatedType(WrapperType.class)); final Map<String, Schema> models = context.getDefinedModels(); final Schema innerType = models.get("InnerType"); assertNotNull(innerType); final Map<String, Schema> innerProps = innerType.getProperties(); assertEquals(innerProps.size(), 2); final Schema foo = innerProps.get("foo"); assertEquals(foo.getType(), "integer"); assertEquals(foo.getFormat(), "int32"); final Schema name = innerProps.get("name"); assertEquals(name.getType(), "string"); final Schema wrapperType = models.get("WrapperType"); assertNotNull(wrapperType); assertEquals(((Schema) wrapperType.getProperties().get("innerType")).getType(), "object"); }
if (StringUtils.isNotBlank(format) && StringUtils.isBlank(schema.getFormat())) { schema.format(format);
.exclusiveMinimum(subtypeModel.getExclusiveMinimum()) .externalDocs(subtypeModel.getExternalDocs()) .format(subtypeModel.getFormat()) .maximum(subtypeModel.getMaximum()) .maxItems(subtypeModel.getMaxItems())
public static boolean isDoubleSchema(Schema schema) { if (schema instanceof NumberSchema) { return true; } if (SchemaTypeUtil.NUMBER_TYPE.equals(schema.getType()) && SchemaTypeUtil.DOUBLE_FORMAT.equals(schema.getFormat())) { // format: double return true; } return false; }