This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push: new ea42f88cd Test modernization ea42f88cd is described below commit ea42f88cdcd8ec5012cf85ec32d260c1f7fa4193 Author: James Bognar <james.bog...@salesforce.com> AuthorDate: Thu Aug 28 10:35:19 2025 -0400 Test modernization --- .../test/java/org/apache/juneau/BeanMap_Test.java | 70 ++++++------- .../src/test/java/org/apache/juneau/TestUtils.java | 16 +-- .../java/org/apache/juneau/config/Config_Test.java | 36 +++---- .../juneau/jsonschema/JsonSchemaGeneratorTest.java | 110 ++++++++++----------- 4 files changed, 113 insertions(+), 119 deletions(-) diff --git a/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java b/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java index 18670f59b..df6d6a0fc 100755 --- a/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java +++ b/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java @@ -216,13 +216,12 @@ class BeanMap_Test extends SimpleTestBase { m.put("jl1", JsonList.ofJson("[1,2,3]")); // al1 should be initialized with an ArrayList, since it's not a superclass of JsonList. - assertEquals(ArrayList.class.getName(), m.get("al1").getClass().getName()); - // The rest are proper superclasses of JsonList. - assertEquals(JsonList.class.getName(), m.get("l1").getClass().getName()); - assertEquals(LinkedList.class.getName(), m.get("ll1").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("c1").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("jl1").getClass().getName()); + assertMap( + m, + "al1{class{name}},l1{class{name}},ll1{class{name}},c1{class{name}},jl1{class{name}}", + "{{java.util.ArrayList}},{{org.apache.juneau.collections.JsonList}},{{java.util.LinkedList}},{{org.apache.juneau.collections.JsonList}},{{org.apache.juneau.collections.JsonList}}" + ); // Non-initialized map fields. m.put("m1", JsonMap.ofJson("{foo:'bar'}")); @@ -231,12 +230,12 @@ class BeanMap_Test extends SimpleTestBase { m.put("tm1", JsonMap.ofJson("{foo:'bar'}")); // tm1 should be initialized with TreeMap, since it's not a superclass of JsonMap. - assertEquals(TreeMap.class.getName(), m.get("tm1").getClass().getName()); - // The rest are proper superclasses of JsonMap - assertEquals(JsonMap.class.getName(), m.get("m1").getClass().getName()); - assertEquals(HashMap.class.getName(), m.get("hm1").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("jm1").getClass().getName()); + assertBean( + m, + "tm1{class{name}},m1{class{name}},hm1{class{name}},jm1{class{name}}", + "{{java.util.TreeMap}},{{org.apache.juneau.collections.JsonMap}},{{java.util.HashMap}},{{org.apache.juneau.collections.JsonMap}}" + ); // Initialized fields should reuse existing field value. m.put("l2", JsonList.ofJson("[1,2,3]")); @@ -249,15 +248,11 @@ class BeanMap_Test extends SimpleTestBase { m.put("jm2", JsonMap.ofJson("{foo:'bar'}")); m.put("jl2", JsonList.ofJson("[1,2,3]")); - assertEquals(ArrayList.class.getName(), m.get("l2").getClass().getName()); - assertEquals(ArrayList.class.getName(), m.get("al2").getClass().getName()); - assertEquals(LinkedList.class.getName(), m.get("ll2").getClass().getName()); - assertEquals(ArrayList.class.getName(), m.get("c2").getClass().getName()); - assertEquals(HashMap.class.getName(), m.get("m2").getClass().getName()); - assertEquals(HashMap.class.getName(), m.get("hm2").getClass().getName()); - assertEquals(TreeMap.class.getName(), m.get("tm2").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("jm2").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("jl2").getClass().getName()); + assertBean( + m, + "l2{class{name}},al2{class{name}},ll2{class{name}},c2{class{name}},m2{class{name}},hm2{class{name}},tm2{class{name}},jm2{class{name}},jl2{class{name}}", + "{{java.util.ArrayList}},{{java.util.ArrayList}},{{java.util.LinkedList}},{{java.util.ArrayList}},{{java.util.HashMap}},{{java.util.HashMap}},{{java.util.TreeMap}},{{org.apache.juneau.collections.JsonMap}},{{org.apache.juneau.collections.JsonList}}" + ); } public static class C { @@ -296,13 +291,12 @@ class BeanMap_Test extends SimpleTestBase { m.put("jl1", JsonList.ofJson("[1,2,3]")); // al1 should be initialized with an ArrayList, since it's not a superclass of JsonList. - assertEquals(ArrayList.class.getName(), m.get("al1").getClass().getName()); - // The rest are proper superclasses of JsonList. - assertEquals(JsonList.class.getName(), m.get("l1").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("ll1").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("c1").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("jl1").getClass().getName()); + assertBean( + m, + "al1{class{name}},l1{class{name}},ll1{class{name}},c1{class{name}},jl1{class{name}}", + "{{java.util.ArrayList}},{{org.apache.juneau.collections.JsonList}},{{org.apache.juneau.collections.JsonList}},{{org.apache.juneau.collections.JsonList}},{{org.apache.juneau.collections.JsonList}}" + ); // Non-initialized map fields. m.put("m1", JsonMap.ofJson("{foo:'bar'}")); @@ -311,12 +305,12 @@ class BeanMap_Test extends SimpleTestBase { m.put("tm1", JsonMap.ofJson("{foo:'bar'}")); // tm1 should be initialized with TreeMap, since it's not a superclass of JsonMap. - assertEquals(TreeMap.class.getName(), m.get("tm1").getClass().getName()); - // The rest are proper superclasses of JsonMap - assertEquals(JsonMap.class.getName(), m.get("m1").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("hm1").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("jm1").getClass().getName()); + assertBean( + m, + "tm1{class{name}},m1{class{name}},hm1{class{name}},jm1{class{name}}", + "{{java.util.TreeMap}},{{org.apache.juneau.collections.JsonMap}},{{org.apache.juneau.collections.JsonMap}},{{org.apache.juneau.collections.JsonMap}}" + ); // Initialized fields should reuse existing field value. m.put("l2", JsonList.ofJson("[1,2,3]")); @@ -329,15 +323,11 @@ class BeanMap_Test extends SimpleTestBase { m.put("jm2", JsonMap.ofJson("{foo:'bar'}")); m.put("jl2", JsonList.ofJson("[1,2,3]")); - assertEquals(JsonList.class.getName(), m.get("l2").getClass().getName()); - assertEquals(ArrayList.class.getName(), m.get("al2").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("ll2").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("c2").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("m2").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("hm2").getClass().getName()); - assertEquals(TreeMap.class.getName(), m.get("tm2").getClass().getName()); - assertEquals(JsonMap.class.getName(), m.get("jm2").getClass().getName()); - assertEquals(JsonList.class.getName(), m.get("jl2").getClass().getName()); + assertBean( + m, + "l2{class{name}},al2{class{name}},ll2{class{name}},c2{class{name}},m2{class{name}},hm2{class{name}},tm2{class{name}},jm2{class{name}},jl2{class{name}}", + "{{org.apache.juneau.collections.JsonList}},{{java.util.ArrayList}},{{org.apache.juneau.collections.JsonList}},{{org.apache.juneau.collections.JsonList}},{{org.apache.juneau.collections.JsonMap}},{{org.apache.juneau.collections.JsonMap}},{{java.util.TreeMap}},{{org.apache.juneau.collections.JsonMap}},{{org.apache.juneau.collections.JsonList}}" + ); } public static class D { diff --git a/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java b/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java index 20ce012d2..645fe41bd 100644 --- a/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java +++ b/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java @@ -352,15 +352,19 @@ public class TestUtils extends Utils2 { @SuppressWarnings("unchecked") private static Object getEntry(Object o, String name) { - if (o instanceof List o2) return o2.get(Integer.parseInt(name)); - if (o.getClass().isArray()) return Array.get(o, Integer.parseInt(name)); - if (o instanceof Map o2) return o2.get(name); - if (o instanceof Iterable o2) return toList(o2).get(Integer.parseInt(name)); - if (o instanceof Iterator o2) return toList(o2).get(Integer.parseInt(name)); - if (o instanceof Enumeration o2) return toList(o2).get(Integer.parseInt(name)); + if (o instanceof List o2) return isNumeric(name) ? o2.get(Integer.parseInt(name)) : getBeanProp(o, name); + if (o.getClass().isArray()) return isNumeric(name) ? Array.get(o, Integer.parseInt(name)) : getBeanProp(o, name); + if (o instanceof Map o2) return opt(o2.get(name)).orElse(name.equals("class") ? o.getClass() : null); + if (o instanceof Iterable o2) return isNumeric(name) ? toList(o2).get(Integer.parseInt(name)) : getBeanProp(o, name); + if (o instanceof Iterator o2) return isNumeric(name) ? toList(o2).get(Integer.parseInt(name)) : getBeanProp(o, name); + if (o instanceof Enumeration o2) return isNumeric(name) ? toList(o2).get(Integer.parseInt(name)) : getBeanProp(o, name); return TestUtils.getBeanProp(o, name); } + private static boolean isNumeric(String name) { + return StringUtils.isNumeric(name); + } + /** * Returns the value of the specified field/property on the specified object. * First looks for getter, then looks for field. diff --git a/juneau-utest/src/test/java/org/apache/juneau/config/Config_Test.java b/juneau-utest/src/test/java/org/apache/juneau/config/Config_Test.java index 32d02410d..9e6f028e4 100644 --- a/juneau-utest/src/test/java/org/apache/juneau/config/Config_Test.java +++ b/juneau-utest/src/test/java/org/apache/juneau/config/Config_Test.java @@ -240,11 +240,11 @@ class Config_Test extends SimpleTestBase { //==================================================================================================== @Test void getStringArray1() { var c = init("a1=1,2", "a2= 2 , 3 ", "[S]", "b1=1", "b2="); - assertJson(c.get("a1").as(String[].class).orElse(null), "['1','2']"); - assertJson(c.get("a2").as(String[].class).orElse(null), "['2','3']"); + assertArray(c.get("a1").as(String[].class).orElse(null), "1", "2"); // BCTM Feedback - assertArray can be used for arrays. + assertArray(c.get("a2").as(String[].class).orElse(null), "2", "3"); assertNull(c.get("a3").as(String[].class).orElse(null)); - assertJson(c.get("S/b1").as(String[].class).orElse(null), "['1']"); - assertJson(c.get("S/b2").as(String[].class).orElse(null), "[]"); + assertArray(c.get("S/b1").as(String[].class).orElse(null), "1"); + assertArray(c.get("S/b2").as(String[].class).orElse(null)); assertNull(c.get("S/b3").as(String[].class).orElse(null)); assertNull(c.get("T/c1").as(String[].class).orElse(null)); } @@ -254,13 +254,13 @@ class Config_Test extends SimpleTestBase { //==================================================================================================== @Test void getStringArray2() { var c = init("a1=1,2", "a2= 2 , 3 ", "[S]", "b1=1", "b2="); - assertJson(c.get("a1").asStringArray().orElse(new String[] {"foo"}), "['1','2']"); - assertJson(c.get("a2").asStringArray().orElse(new String[] {"foo"}), "['2','3']"); - assertJson(c.get("a3").asStringArray().orElse(new String[] {"foo"}), "['foo']"); - assertJson(c.get("S/b1").asStringArray().orElse(new String[] {"foo"}), "['1']"); - assertJson(c.get("S/b2").asStringArray().orElse(new String[] {"foo"}), "[]"); - assertJson(c.get("S/b3").asStringArray().orElse(new String[] {"foo"}), "['foo']"); - assertJson(c.get("T/c1").asStringArray().orElse(new String[] {"foo"}), "['foo']"); + assertArray(c.get("a1").asStringArray().orElse(new String[] {"foo"}), "1", "2"); + assertArray(c.get("a2").asStringArray().orElse(new String[] {"foo"}), "2", "3"); + assertArray(c.get("a3").asStringArray().orElse(new String[] {"foo"}), "foo"); + assertArray(c.get("S/b1").asStringArray().orElse(new String[] {"foo"}), "1"); + assertArray(c.get("S/b2").asStringArray().orElse(new String[] {"foo"})); + assertArray(c.get("S/b3").asStringArray().orElse(new String[] {"foo"}), "foo"); + assertArray(c.get("T/c1").asStringArray().orElse(new String[] {"foo"}), "foo"); } //==================================================================================================== @@ -402,9 +402,9 @@ class Config_Test extends SimpleTestBase { @Test void getBytes1() { var c = init("a1=Zm9v", "a2=Zm", "\t9v", "a3="); - assertJson(c.get("a1").as(byte[].class), "[102,111,111]"); - assertJson(c.get("a2").as(byte[].class), "[102,111,111]"); - assertJson(c.get("a3").as(byte[].class), "[]"); + assertArray(c.get("a1").as(byte[].class).get(), (byte)102, (byte)111, (byte)111); // BCTM - as() returns an Optional here that needs to be unwrapped. + assertArray(c.get("a2").as(byte[].class).get(), (byte)102, (byte)111, (byte)111); + assertArray(c.get("a3").as(byte[].class).get()); assertFalse(c.get("a4").as(byte[].class).isPresent()); } @@ -414,10 +414,10 @@ class Config_Test extends SimpleTestBase { @Test void getBytes2() { var c = init("a1=Zm9v", "a2=Zm", "\t9v", "a3="); - assertJson(c.get("a1").asBytes().orElse(new byte[] {1}), "[102,111,111]"); - assertJson(c.get("a2").asBytes().orElse(new byte[] {1}), "[102,111,111]"); - assertJson(c.get("a3").asBytes().orElse(new byte[] {1}), "[]"); - assertJson(c.get("a4").asBytes().orElse(new byte[] {1}), "[1]"); + assertArray(c.get("a1").asBytes().orElse(new byte[] {1}), (byte)102, (byte)111, (byte)111); + assertArray(c.get("a2").asBytes().orElse(new byte[] {1}), (byte)102, (byte)111, (byte)111); + assertArray(c.get("a3").asBytes().orElse(new byte[] {1})); + assertArray(c.get("a4").asBytes().orElse(new byte[] {1}), (byte)1); } //==================================================================================================== diff --git a/juneau-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java b/juneau-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java index bd2d5521e..f9918c58c 100755 --- a/juneau-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java +++ b/juneau-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java @@ -34,24 +34,24 @@ class JsonSchemaGeneratorTest extends SimpleTestBase { @Test void simpleObjects() throws Exception { var s = JsonSchemaGenerator.DEFAULT.getSession(); - assertJson(s.getSchema(short.class), "{type:'integer',format:'int16'}"); - assertJson(s.getSchema(Short.class), "{type:'integer',format:'int16'}"); - assertJson(s.getSchema(int.class), "{type:'integer',format:'int32'}"); - assertJson(s.getSchema(Integer.class), "{type:'integer',format:'int32'}"); - assertJson(s.getSchema(long.class), "{type:'integer',format:'int64'}"); - assertJson(s.getSchema(Long.class), "{type:'integer',format:'int64'}"); - assertJson(s.getSchema(float.class), "{type:'number',format:'float'}"); - assertJson(s.getSchema(Float.class), "{type:'number',format:'float'}"); - assertJson(s.getSchema(double.class), "{type:'number',format:'double'}"); - assertJson(s.getSchema(Double.class), "{type:'number',format:'double'}"); - assertJson(s.getSchema(boolean.class), "{type:'boolean'}"); - assertJson(s.getSchema(Boolean.class), "{type:'boolean'}"); - assertJson(s.getSchema(String.class), "{type:'string'}"); - assertJson(s.getSchema(StringBuilder.class), "{type:'string'}"); - assertJson(s.getSchema(char.class), "{type:'string'}"); - assertJson(s.getSchema(Character.class), "{type:'string'}"); - assertJson(s.getSchema(TestEnumToString.class), "{type:'string','enum':['one','two','three']}"); - assertJson(s.getSchema(SimpleBean.class), "{type:'object',properties:{f1:{type:'string'}}}"); + assertBean(s.getSchema(short.class), "type,format", "integer,int16"); + assertBean(s.getSchema(Short.class), "type,format", "integer,int16"); + assertBean(s.getSchema(int.class), "type,format", "integer,int32"); + assertBean(s.getSchema(Integer.class), "type,format", "integer,int32"); + assertBean(s.getSchema(long.class), "type,format", "integer,int64"); + assertBean(s.getSchema(Long.class), "type,format", "integer,int64"); + assertBean(s.getSchema(float.class), "type,format", "number,float"); + assertBean(s.getSchema(Float.class), "type,format", "number,float"); + assertBean(s.getSchema(double.class), "type,format", "number,double"); + assertBean(s.getSchema(Double.class), "type,format", "number,double"); + assertBean(s.getSchema(boolean.class), "type", "boolean"); + assertBean(s.getSchema(Boolean.class), "type", "boolean"); + assertBean(s.getSchema(String.class), "type", "string"); + assertBean(s.getSchema(StringBuilder.class), "type", "string"); + assertBean(s.getSchema(char.class), "type", "string"); + assertBean(s.getSchema(Character.class), "type", "string"); + assertBean(s.getSchema(TestEnumToString.class), "type,enum", "string,[one,two,three]"); + assertBean(s.getSchema(SimpleBean.class), "type,properties{f1{type}}", "object,{{string}}"); } public static class SimpleBean { @@ -65,47 +65,47 @@ class JsonSchemaGeneratorTest extends SimpleTestBase { @Test void arrays1d() throws Exception { var s = JsonSchemaGenerator.DEFAULT.getSession(); - assertJson(s.getSchema(short[].class), "{type:'array',items:{type:'integer',format:'int16'}}"); - assertJson(s.getSchema(Short[].class), "{type:'array',items:{type:'integer',format:'int16'}}"); - assertJson(s.getSchema(int[].class), "{type:'array',items:{type:'integer',format:'int32'}}"); - assertJson(s.getSchema(Integer[].class), "{type:'array',items:{type:'integer',format:'int32'}}"); - assertJson(s.getSchema(long[].class), "{type:'array',items:{type:'integer',format:'int64'}}"); - assertJson(s.getSchema(Long[].class), "{type:'array',items:{type:'integer',format:'int64'}}"); - assertJson(s.getSchema(float[].class), "{type:'array',items:{type:'number',format:'float'}}"); - assertJson(s.getSchema(Float[].class), "{type:'array',items:{type:'number',format:'float'}}"); - assertJson(s.getSchema(double[].class), "{type:'array',items:{type:'number',format:'double'}}"); - assertJson(s.getSchema(Double[].class), "{type:'array',items:{type:'number',format:'double'}}"); - assertJson(s.getSchema(boolean[].class), "{type:'array',items:{type:'boolean'}}"); - assertJson(s.getSchema(Boolean[].class), "{type:'array',items:{type:'boolean'}}"); - assertJson(s.getSchema(String[].class), "{type:'array',items:{type:'string'}}"); - assertJson(s.getSchema(StringBuilder[].class), "{type:'array',items:{type:'string'}}"); - assertJson(s.getSchema(char[].class), "{type:'array',items:{type:'string'}}"); - assertJson(s.getSchema(Character[].class), "{type:'array',items:{type:'string'}}"); - assertJson(s.getSchema(TestEnumToString[].class), "{type:'array',items:{type:'string','enum':['one','two','three']}}"); - assertJson(s.getSchema(SimpleBean[].class), "{type:'array',items:{type:'object',properties:{f1:{type:'string'}}}}"); + assertBean(s.getSchema(short[].class), "type,items{type,format}", "array,{integer,int16}"); + assertBean(s.getSchema(Short[].class), "type,items{type,format}", "array,{integer,int16}"); + assertBean(s.getSchema(int[].class), "type,items{type,format}", "array,{integer,int32}"); + assertBean(s.getSchema(Integer[].class), "type,items{type,format}", "array,{integer,int32}"); + assertBean(s.getSchema(long[].class), "type,items{type,format}", "array,{integer,int64}"); + assertBean(s.getSchema(Long[].class), "type,items{type,format}", "array,{integer,int64}"); + assertBean(s.getSchema(float[].class), "type,items{type,format}", "array,{number,float}"); + assertBean(s.getSchema(Float[].class), "type,items{type,format}", "array,{number,float}"); + assertBean(s.getSchema(double[].class), "type,items{type,format}", "array,{number,double}"); + assertBean(s.getSchema(Double[].class), "type,items{type,format}", "array,{number,double}"); + assertBean(s.getSchema(boolean[].class), "type,items{type}", "array,{boolean}"); + assertBean(s.getSchema(Boolean[].class), "type,items{type}", "array,{boolean}"); + assertBean(s.getSchema(String[].class), "type,items{type}", "array,{string}"); + assertBean(s.getSchema(StringBuilder[].class), "type,items{type}", "array,{string}"); + assertBean(s.getSchema(char[].class), "type,items{type}", "array,{string}"); + assertBean(s.getSchema(Character[].class), "type,items{type}", "array,{string}"); + assertBean(s.getSchema(TestEnumToString[].class), "type,items{type,enum}", "array,{string,[one,two,three]}"); + assertBean(s.getSchema(SimpleBean[].class), "type,items{type,properties{f1{type}}}", "array,{object,{{string}}}"); } @Test void arrays2d() throws Exception { var s = JsonSchemaGenerator.DEFAULT.getSession(); - assertJson(s.getSchema(short[][].class), "{type:'array',items:{type:'array',items:{type:'integer',format:'int16'}}}"); - assertJson(s.getSchema(Short[][].class), "{type:'array',items:{type:'array',items:{type:'integer',format:'int16'}}}"); - assertJson(s.getSchema(int[][].class), "{type:'array',items:{type:'array',items:{type:'integer',format:'int32'}}}"); - assertJson(s.getSchema(Integer[][].class), "{type:'array',items:{type:'array',items:{type:'integer',format:'int32'}}}"); - assertJson(s.getSchema(long[][].class), "{type:'array',items:{type:'array',items:{type:'integer',format:'int64'}}}"); - assertJson(s.getSchema(Long[][].class), "{type:'array',items:{type:'array',items:{type:'integer',format:'int64'}}}"); - assertJson(s.getSchema(float[][].class), "{type:'array',items:{type:'array',items:{type:'number',format:'float'}}}"); - assertJson(s.getSchema(Float[][].class), "{type:'array',items:{type:'array',items:{type:'number',format:'float'}}}"); - assertJson(s.getSchema(double[][].class), "{type:'array',items:{type:'array',items:{type:'number',format:'double'}}}"); - assertJson(s.getSchema(Double[][].class), "{type:'array',items:{type:'array',items:{type:'number',format:'double'}}}"); - assertJson(s.getSchema(boolean[][].class), "{type:'array',items:{type:'array',items:{type:'boolean'}}}"); - assertJson(s.getSchema(Boolean[][].class), "{type:'array',items:{type:'array',items:{type:'boolean'}}}"); - assertJson(s.getSchema(String[][].class), "{type:'array',items:{type:'array',items:{type:'string'}}}"); - assertJson(s.getSchema(StringBuilder[][].class), "{type:'array',items:{type:'array',items:{type:'string'}}}"); - assertJson(s.getSchema(char[][].class), "{type:'array',items:{type:'array',items:{type:'string'}}}"); - assertJson(s.getSchema(Character[][].class), "{type:'array',items:{type:'array',items:{type:'string'}}}"); - assertJson(s.getSchema(TestEnumToString[][].class), "{type:'array',items:{type:'array',items:{type:'string','enum':['one','two','three']}}}"); - assertJson(s.getSchema(SimpleBean[][].class), "{type:'array',items:{type:'array',items:{type:'object',properties:{f1:{type:'string'}}}}}"); + assertBean(s.getSchema(short[][].class), "type,items{type,items{type,format}}", "array,{array,{integer,int16}}"); + assertBean(s.getSchema(Short[][].class), "type,items{type,items{type,format}}", "array,{array,{integer,int16}}"); + assertBean(s.getSchema(int[][].class), "type,items{type,items{type,format}}", "array,{array,{integer,int32}}"); + assertBean(s.getSchema(Integer[][].class), "type,items{type,items{type,format}}", "array,{array,{integer,int32}}"); + assertBean(s.getSchema(long[][].class), "type,items{type,items{type,format}}", "array,{array,{integer,int64}}"); + assertBean(s.getSchema(Long[][].class), "type,items{type,items{type,format}}", "array,{array,{integer,int64}}"); + assertBean(s.getSchema(float[][].class), "type,items{type,items{type,format}}", "array,{array,{number,float}}"); + assertBean(s.getSchema(Float[][].class), "type,items{type,items{type,format}}", "array,{array,{number,float}}"); + assertBean(s.getSchema(double[][].class), "type,items{type,items{type,format}}", "array,{array,{number,double}}"); + assertBean(s.getSchema(Double[][].class), "type,items{type,items{type,format}}", "array,{array,{number,double}}"); + assertBean(s.getSchema(boolean[][].class), "type,items{type,items{type}}", "array,{array,{boolean}}"); + assertBean(s.getSchema(Boolean[][].class), "type,items{type,items{type}}", "array,{array,{boolean}}"); + assertBean(s.getSchema(String[][].class), "type,items{type,items{type}}", "array,{array,{string}}"); + assertBean(s.getSchema(StringBuilder[][].class), "type,items{type,items{type}}", "array,{array,{string}}"); + assertBean(s.getSchema(char[][].class), "type,items{type,items{type}}", "array,{array,{string}}"); + assertBean(s.getSchema(Character[][].class), "type,items{type,items{type}}", "array,{array,{string}}"); + assertBean(s.getSchema(TestEnumToString[][].class), "type,items{type,items{type,enum}}", "array,{array,{string,[one,two,three]}}"); + assertBean(s.getSchema(SimpleBean[][].class), "type,items{type,items{type,properties{f1{type}}}}", "array,{array,{object,{{string}}}}"); } //==================================================================================================== @@ -114,7 +114,7 @@ class JsonSchemaGeneratorTest extends SimpleTestBase { @Test void simpleList() throws Exception { var s = JsonSchemaGenerator.DEFAULT.getSession(); - assertJson(s.getSchema(SimpleList.class), "{type:'array',items:{type:'integer',format:'int32'}}"); + assertBean(s.getSchema(SimpleList.class), "type,items{type,format}", "array,{integer,int32}"); } @SuppressWarnings("serial")