From 86b38eebe1119919fe780df46fd6a91a12093ffd Mon Sep 17 00:00:00 2001 From: Mohammed Rizwan Date: Wed, 6 Sep 2017 16:20:13 +0530 Subject: [PATCH 1/3] Fixing NPE in arrag generator and set minItems, maxItems when no value is given --- .../json/generator/generators/ArrayGenerator.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java b/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java index 2136104..35fdf77 100644 --- a/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java +++ b/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java @@ -43,8 +43,8 @@ public JsonArray generate() { JsonArray res = new JsonArray(); SchemaList items = schema.getItems(); JsonElement newEl; - int minItems = schema.getMinItems(); - int maxItems = schema.getMaxItems(); + Integer minItems = schema.getMinItems(); + Integer maxItems = schema.getMaxItems(); if(configuration!=null) { if (configuration.globalArrayItemsMin!=null) minItems = configuration.globalArrayItemsMin; @@ -55,6 +55,12 @@ public JsonArray generate() { } } + if (minItems == null) { + minItems = (maxItems != null && maxItems <= 1) ? 0 : 1; + } + if (maxItems == null) { + maxItems = minItems + 2; + } maxItems = minItems + rnd.nextInt(maxItems-minItems); From e67532c4a5c503bb3613097d7406284fb03f9b54 Mon Sep 17 00:00:00 2001 From: Mohammed Rizwan Date: Tue, 12 Sep 2017 12:58:18 +0530 Subject: [PATCH 2/3] Set the maximum items to 500 when maxItems in json schema is not set --- .../json/examples/jsongenerator/JsonGeneratorExample.java | 5 +++++ .../io/apptik/json/generator/generators/ArrayGenerator.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java b/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java index 161855f..f0a5e6d 100644 --- a/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java +++ b/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java @@ -31,6 +31,11 @@ public class JsonGeneratorExample { public static void main(String[] args) { JsonGeneratorExample generator = new JsonGeneratorExample(); + Schema arraySchema = null; + try { + arraySchema = new SchemaV4().wrap(JsonElement.readFrom("{\"type\" : \"array\",\"items\" : {\"type\": \"object\",\"required\" : [\"name\"],\"properties\": {\"name\": {\"type\": \"string\"},\"birthday\": {\"type\": \"integer\",\"format\": \"int32\"}}}}").asJsonObject()); + } catch (Exception e) {} + System.out.println(generator.generateNoSettings(arraySchema).toString()); System.out.println("generation without settings"); System.out.println(generator.generateNoSettings(generator.schema1).toString()); System.out.println("generation with settings"); diff --git a/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java b/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java index 35fdf77..7adf693 100644 --- a/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java +++ b/json-generator/src/main/java/io/apptik/json/generator/generators/ArrayGenerator.java @@ -59,7 +59,7 @@ public JsonArray generate() { minItems = (maxItems != null && maxItems <= 1) ? 0 : 1; } if (maxItems == null) { - maxItems = minItems + 2; + maxItems = 500; } maxItems = minItems + rnd.nextInt(maxItems-minItems); From 49b8c57f757f6ddf379f42055af5114a16ae8283 Mon Sep 17 00:00:00 2001 From: Mohammed Rizwan Date: Tue, 12 Sep 2017 13:01:32 +0530 Subject: [PATCH 3/3] Removed the example from JsonGenerator.java --- .../json/examples/jsongenerator/JsonGeneratorExample.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java b/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java index f0a5e6d..161855f 100644 --- a/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java +++ b/examples/src/main/java/io/apptik/json/examples/jsongenerator/JsonGeneratorExample.java @@ -31,11 +31,6 @@ public class JsonGeneratorExample { public static void main(String[] args) { JsonGeneratorExample generator = new JsonGeneratorExample(); - Schema arraySchema = null; - try { - arraySchema = new SchemaV4().wrap(JsonElement.readFrom("{\"type\" : \"array\",\"items\" : {\"type\": \"object\",\"required\" : [\"name\"],\"properties\": {\"name\": {\"type\": \"string\"},\"birthday\": {\"type\": \"integer\",\"format\": \"int32\"}}}}").asJsonObject()); - } catch (Exception e) {} - System.out.println(generator.generateNoSettings(arraySchema).toString()); System.out.println("generation without settings"); System.out.println(generator.generateNoSettings(generator.schema1).toString()); System.out.println("generation with settings");