@Test public void testFormatOfInteger() { final Map<String, Schema> models = ModelConverters.getInstance().readAll(ModelWithIntegerFields.class); assertEquals(models.size(), 1); String json = Json.pretty(models); assertEquals(normalizeLineEnds(json), "{\n" + " \"ModelWithIntegerFields\" : {\n" + " \"type\" : \"object\",\n" + " \"properties\" : {\n" + " \"id\" : {\n" + " \"minimum\" : 3,\n" + " \"type\" : \"integer\",\n" + " \"format\" : \"int32\"\n" + " }\n" + " }\n" + " }\n" + "}"); }
@Test public void testFormatOfDecimal() { final Map<String, Schema> models = ModelConverters.getInstance().readAll(ModelWithDecimalFields.class); assertEquals(models.size(), 1); String json = Json.pretty(models); assertEquals(normalizeLineEnds(json), "{\n" + " \"ModelWithDecimalFields\" : {\n" + " \"type\" : \"object\",\n" + " \"properties\" : {\n" + " \"id\" : {\n" + " \"minimum\" : 3.3,\n" + " \"exclusiveMinimum\" : false,\n" + " \"type\" : \"number\",\n" + " \"format\" : \"double\"\n" + " }\n" + " }\n" + " }\n" + "}"); }
@Test public void testFormatOfBigDecimal() { final Map<String, Schema> models = ModelConverters.getInstance().readAll(ModelWithoutScientificFields.class); assertEquals(models.size(), 1); String json = Json.pretty(models); assertEquals(normalizeLineEnds(json), "{\n" + " \"ModelWithoutScientificFields\" : {\n" + " \"type\" : \"object\",\n" + " \"properties\" : {\n" + " \"id\" : {\n" + " \"maximum\" : 9999999999999999.99,\n" + " \"exclusiveMaximum\" : false,\n" + " \"minimum\" : -9999999999999999.99,\n" + " \"exclusiveMinimum\" : false,\n" + " \"type\" : \"number\"\n" + " }\n" + " }\n" + " }\n" + "}"); }
@Test(description = "it should serialize a boolean additionalProperties") public void testBooleanAdditionalPropertiesSerialization() throws Exception { Operation operation = Json.mapper().readValue(json, Operation.class); ApiResponse response = operation.getResponses().get("200"); assertNotNull(response); Schema responseSchema = response.getContent().get("*/*").getSchema(); Schema schema = new ObjectSchema().additionalProperties(true); assertEquals(normalizeLineEnds(Json.pretty(schema)), "{\n" + " \"type\" : \"object\",\n" + " \"additionalProperties\" : true\n" + "}"); schema = new ObjectSchema().additionalProperties(responseSchema); assertEquals(normalizeLineEnds(Json.pretty(schema)), "{\n" + " \"type\" : \"object\",\n" + " \"additionalProperties\" : {\n" + " \"type\" : \"object\",\n" + " \"additionalProperties\" : {\n" + " \"type\" : \"integer\",\n" + " \"format\" : \"int32\"\n" + " },\n" + " \"x-foo\" : \"vendor x\"\n" + " }\n" + "}"); }