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 ae101610d Test modernization
ae101610d is described below
commit ae101610d5b0b110c3f0750deba37ced9d51299f
Author: James Bognar <[email protected]>
AuthorDate: Sat Aug 30 17:15:18 2025 -0400
Test modernization
---
.../src/test/java/org/apache/juneau/TestUtils.java | 19 +-
.../apache/juneau/dto/swagger/Contact_Test.java | 49 ++--
.../dto/swagger/ExternalDocumentation_Test.java | 22 +-
.../apache/juneau/dto/swagger/HeaderInfo_Test.java | 249 +++++++++--------
.../org/apache/juneau/dto/swagger/Info_Test.java | 45 ++-
.../org/apache/juneau/dto/swagger/Items_Test.java | 213 +++++++-------
.../apache/juneau/dto/swagger/License_Test.java | 24 +-
.../apache/juneau/dto/swagger/Operation_Test.java | 110 ++++----
.../juneau/dto/swagger/ParameterInfo_Test.java | 249 ++++++++---------
.../juneau/dto/swagger/ResponseInfo_Test.java | 101 ++++---
.../apache/juneau/dto/swagger/SchemaInfo_Test.java | 307 +++++++++------------
.../juneau/dto/swagger/SecurityScheme_Test.java | 58 ++--
.../apache/juneau/dto/swagger/Swagger_Test.java | 208 +++++++-------
.../org/apache/juneau/dto/swagger/Tag_Test.java | 35 +--
.../org/apache/juneau/dto/swagger/Xml_Test.java | 61 ++--
.../http/annotation/FormDataAnnotation_Test.java | 16 +-
.../http/annotation/HeaderAnnotation_Test.java | 16 +-
.../http/annotation/PathAnnotation_Test.java | 16 +-
.../http/annotation/QueryAnnotation_Test.java | 56 ++--
.../http/annotation/ResponseAnnotation_Test.java | 15 +-
20 files changed, 901 insertions(+), 968 deletions(-)
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 742bfa128..972a74f2c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/TestUtils.java
@@ -227,7 +227,7 @@ public class TestUtils extends Utils2 {
* <h5 class='section'>Advanced Collection Analysis:</h5>
* <p class='bjava'>
* <jc>// Combine size/length, metadata, and content iteration in
single assertions</jc>
- * assertBean(myBean,
<js>"users{length,class{simpleName},#{name}}"</js>,
+ * assertBean(myBean,
<js>"users{length,class{simpleName},#{name}}"</js>,
* <js>"{3,{ArrayList},[{John},{Jane},{Bob}]}"</js>);
*
* <jc>// Comprehensive collection validation with multiple
iteration patterns</jc>
@@ -235,7 +235,7 @@ public class TestUtils extends Utils2 {
*
<js>"{3,[{Laptop},{Phone},{Tablet}],[{999.99},{599.99},{399.99}]}"</js>);
*
* <jc>// Perfect for validation testing - verify error count and
details</jc>
- * assertBean(result, <js>"errors{length,#{field},#{code}}"</js>,
+ * assertBean(result, <js>"errors{length,#{field},#{code}}"</js>,
* <js>"{2,[{email},{password}],[{E001},{E002}]}"</js>);
*
* <jc>// Mixed collection types with consistent syntax</jc>
@@ -503,11 +503,6 @@ public class TestUtils extends Utils2 {
assertContains(json, Json5.DEFAULT.write(value));
}
- public static void assertJsonMatches(Object o, String pattern) throws
AssertionError {
- var json = json(o);
- assertTrue(getMatchPattern3(pattern).matcher(json).matches(),
fs("JSON did not match pattern.\njson={0}", json));
- }
-
public static void assertLines(String expected, Object value) {
assertEquals(expected, r(value).replaceAll("\\r?\\n", "|"));
}
@@ -1184,4 +1179,14 @@ public class TestUtils extends Utils2 {
var xml = s.serialize(o);
checkXmlWhitespace(xml);
}
+
+ /**
+ * Helper method for creating StringBuilder objects.
+ *
+ * @param value The string value to wrap in a StringBuilder.
+ * @return A new StringBuilder containing the specified value.
+ */
+ public static StringBuilder sb(String value) {
+ return new StringBuilder(value);
+ }
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Contact_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Contact_Test.java
index da97c3a10..48b574985 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Contact_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Contact_Test.java
@@ -33,41 +33,46 @@ class Contact_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new Contact();
+ // General - Combined assertBean test
assertBean(
t.setName("a").setEmail("b").setUrl(URI.create("http://c")),
"name,email,url",
"a,b,http://c"
);
- assertNull(t.setName(null).getName());
- assertNull(t.setEmail(null).getEmail());
+ // Null cases
+ assertBean(
+ t.setName(null).setEmail(null),
+ "name,email",
+ "null,null"
+ );
}
/**
* Test method for {@link Contact#set(String, Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new Contact();
t
- .set("name", "a")
- .set("url", "b")
- .set("email", "c")
- .set("$ref", "d");
+ .set("email", "a")
+ .set("name", "b")
+ .set("$ref", "c")
+ .set("url", "d");
- assertBean(t, "name,url,email,$ref", "a,b,c,d");
+ assertBean(t, "email,name,$ref,url", "a,b,c,d");
t
- .set("name", new StringBuilder("a"))
- .set("url", new StringBuilder("b"))
- .set("email", new StringBuilder("c"))
- .set("$ref", new StringBuilder("d"));
+ .set("email", sb("a"))
+ .set("name", sb("b"))
+ .set("$ref", sb("c"))
+ .set("url", sb("d"));
- assertBean(t, "name,url,email,$ref", "a,b,c,d");
+ assertBean(t, "email,name,$ref,url", "a,b,c,d");
assertMapped(
t, (obj,prop) -> obj.get(prop, String.class),
- "name,url,email,$ref",
+ "email,name,$ref,url",
"a,b,c,d"
);
@@ -75,11 +80,13 @@ class Contact_Test extends SimpleTestBase {
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
assertBean(JsonParser.DEFAULT.parse("{name:'a',url:'b',email:'c','$ref':'d'}",
Contact.class), "name,url,email,$ref", "a,b,c,d");
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Contact();
t = t.copy();
@@ -96,16 +103,16 @@ class Contact_Test extends SimpleTestBase {
assertBean(t, "name,url,email,$ref", "a,b,c,d");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Contact();
- assertJson(t.keySet(), "[]");
+ assertEmpty(t.keySet());
t
- .set("name", "foo")
- .set("url", "bar")
- .set("email", "baz")
- .set("$ref", "qux");
+ .set("name", "a")
+ .set("url", "b")
+ .set("email", "c")
+ .set("$ref", "d");
assertSet(t.keySet(), "email,name,url,$ref");
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ExternalDocumentation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ExternalDocumentation_Test.java
index 8d1c5cb1c..072fcec66 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ExternalDocumentation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ExternalDocumentation_Test.java
@@ -33,19 +33,25 @@ class ExternalDocumentation_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new ExternalDocumentation();
+ // General - Combined assertBean test
assertBean(
t.setDescription("a").setUrl(URI.create("http://b")),
"description,url",
"a,http://b"
);
- assertNull(t.setDescription(null).getDescription());
+ // Null cases
+ assertBean(
+ t.setDescription(null),
+ "description",
+ "null"
+ );
}
/**
* Test method for {@link ExternalDocumentation#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new ExternalDocumentation();
t
@@ -56,9 +62,9 @@ class ExternalDocumentation_Test extends SimpleTestBase {
assertBean(t, "description,url,$ref", "a,b,c");
t
- .set("description", new StringBuilder("a2"))
- .set("url", new StringBuilder("b2"))
- .set("$ref", new StringBuilder("c2"));
+ .set("description", sb("a2"))
+ .set("url", sb("b2"))
+ .set("$ref", sb("c2"));
assertBean(t, "description,url,$ref", "a2,b2,c2");
@@ -72,11 +78,13 @@ class ExternalDocumentation_Test extends SimpleTestBase {
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
assertBean(JsonParser.DEFAULT.parse("{description:'a',url:'b','$ref':'c'}",
ExternalDocumentation.class), "description,url,$ref", "a,b,c");
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new ExternalDocumentation();
t = t.copy();
@@ -92,7 +100,7 @@ class ExternalDocumentation_Test extends SimpleTestBase {
assertBean(t, "description,url,$ref", "a,b,c");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new ExternalDocumentation();
assertEmpty(t.keySet());
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
index 12f1917a1..340c61d30 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
@@ -36,134 +36,139 @@ class HeaderInfo_Test extends SimpleTestBase {
// General - Combined assertBean test
assertBean(
-
t.setDescription("foo").setType("foo").setFormat("foo").setItems(items("foo"))
-
.setCollectionFormat("foo").setDefault("foo").setMaximum(123).setExclusiveMaximum(true)
-
.setMinimum(123).setExclusiveMinimum(true).setMaxLength(123).setMinLength(123)
-
.setPattern("foo").setMaxItems(123).setMinItems(123).setUniqueItems(true)
-
.setEnum(set("foo","bar")).setMultipleOf(123).setExample("foo").setRef("foo"),
-
"description,type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,example,ref",
-
"foo,foo,foo,{foo},foo,foo,123,true,123,true,123,123,foo,123,123,true,[foo,bar],123,foo,foo"
+
t.setCollectionFormat("a").setDefault("b").setDescription("c").setEnum(set("d1","d2")).setExample("e")
+
.setExclusiveMaximum(true).setExclusiveMinimum(true).setFormat("f").setItems(items("g"))
+
.setMaxItems(1).setMaxLength(2).setMaximum(3).setMinItems(4).setMinLength(5)
+
.setMinimum(6).setMultipleOf(7).setPattern("h").setRef("i").setType("j").setUniqueItems(true),
+
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,ref,type,uniqueItems",
+
"a,b,c,[d1,d2],e,true,true,f,{g},1,2,3,4,5,6,7,h,i,j,true"
);
- // Special cases
- assertNull(t.setDescription(null).getDescription());
- assertNull(t.setType(null).getType());
- assertNull(t.setFormat(null).getFormat());
- assertNull(t.setItems((Items)null).getItems());
- assertNull(t.setCollectionFormat(null).getCollectionFormat());
- assertNull(t.setDefault(null).getDefault());
- assertEquals(123f, t.setMaximum(123f).getMaximum());
- assertEquals(123f, t.setMinimum(123f).getMinimum());
- assertNull(t.setPattern(null).getPattern());
- assertEmpty(t.setEnum(set()).getEnum());
- assertSet(t.setEnum("foo","bar").getEnum(), "foo,bar");
- assertNull(t.setEnum((Set<Object>)null).getEnum());
- assertSet(t.addEnum("foo","bar").getEnum(), "foo,bar");
- assertSet(t.addEnum("baz").getEnum(), "foo,bar,baz");
- assertEquals(123f, t.setMultipleOf(123f).getMultipleOf());
- assertBean(t.setExample(123f), "example", "123.0");
- assertNull(t.setExample((String)null).getExample());
- assertBean(t.setRef(null), "ref", "null");
+ // Null cases
+ assertBean(
+
t.setCollectionFormat(null).setDefault(null).setDescription(null).setEnum((Set<Object>)null).setExample((String)null)
+
.setFormat(null).setItems((Items)null).setPattern(null).setRef(null).setType(null),
+
"collectionFormat,default,description,enum,example,format,items,pattern,ref,type",
+ "null,null,null,null,null,null,null,null,null,null"
+ );
+
+ // Empty collections
+ assertBean(
+ t.setEnum(set()),
+ "enum",
+ "[]"
+ );
+
+ // Other
+ assertBean(
+
t.setExample(1f).setMaximum(2f).setMinimum(3f).setMultipleOf(4f),
+ "example,maximum,minimum,multipleOf",
"1.0,2.0,3.0,4.0");
+
+ // addEnum
+ assertSet(t.addEnum("a","b").getEnum(), "a,b");
+ assertSet(t.addEnum("c").getEnum(), "a,b,c");
}
/**
* Test method for {@link HeaderInfo#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new HeaderInfo();
t
- .set("default", "a")
- .set("enum", set("b"))
- .set("collectionFormat", "c")
- .set("description", "d")
+ .set("collectionFormat", "a")
+ .set("default", "b")
+ .set("description", "c")
+ .set("enum", set("d"))
.set("example", "e")
.set("exclusiveMaximum", true)
.set("exclusiveMinimum", true)
- .set("format", "g")
- .set("items", items("h"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
- .set("pattern", "i")
+ .set("format", "f")
+ .set("items", items("g"))
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
+ .set("pattern", "h")
+ .set("$ref", "i")
.set("type", "j")
- .set("uniqueItems", true)
- .set("$ref", "ref");
+ .set("uniqueItems", true);
assertBean(t,
-
"description,type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref,example",
-
"d,j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref,e");
+
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items{type},maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,ref,type,uniqueItems",
+
"a,b,c,[d],e,true,true,f,{g},1.0,2,3,4.0,5,6,7.0,h,i,j,true");
t
- .set("default", "a")
- .set("enum", "['b']")
- .set("collectionFormat", "c")
- .set("description", "d")
+ .set("collectionFormat", "a")
+ .set("default", "b")
+ .set("description", "c")
+ .set("enum", "['d']")
.set("example", "e")
.set("exclusiveMaximum", "true")
.set("exclusiveMinimum", "true")
- .set("format", "g")
- .set("items", "{type:'h'}")
- .set("maximum", "123f")
- .set("maxItems", "123")
- .set("maxLength", "123")
- .set("minimum", "123f")
- .set("minItems", "123")
- .set("minLength", "123")
- .set("multipleOf", "123f")
- .set("pattern", "i")
+ .set("format", "f")
+ .set("items", "{type:'g'}")
+ .set("maximum", "1f")
+ .set("maxItems", "2")
+ .set("maxLength", "3")
+ .set("minimum", "4f")
+ .set("minItems", "5")
+ .set("minLength", "6")
+ .set("multipleOf", "7f")
+ .set("pattern", "h")
+ .set("$ref", "i")
.set("type", "j")
- .set("uniqueItems", "true")
- .set("$ref", "ref");
+ .set("uniqueItems", "true");
assertBean(t,
-
"description,type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref,example",
-
"d,j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref,e");
+
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items{type},maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,ref,type,uniqueItems",
+
"a,b,c,[d],e,true,true,f,{g},1.0,2,3,4.0,5,6,7.0,h,i,j,true");
t
- .set("default", new StringBuilder("a"))
- .set("enum", new StringBuilder("['b']"))
- .set("collectionFormat", new StringBuilder("c"))
- .set("description", new StringBuilder("d"))
- .set("example", new StringBuilder("e"))
- .set("exclusiveMaximum", new StringBuilder("true"))
- .set("exclusiveMinimum", new StringBuilder("true"))
- .set("format", new StringBuilder("g"))
- .set("items", new StringBuilder("{type:'h'}"))
- .set("maximum", new StringBuilder("123f"))
- .set("maxItems", new StringBuilder("123"))
- .set("maxLength", new StringBuilder("123"))
- .set("minimum", new StringBuilder("123f"))
- .set("minItems", new StringBuilder("123"))
- .set("minLength", new StringBuilder("123"))
- .set("multipleOf", new StringBuilder("123f"))
- .set("pattern", new StringBuilder("i"))
- .set("type", new StringBuilder("j"))
- .set("uniqueItems", new StringBuilder("true"))
- .set("$ref", new StringBuilder("ref"));
+ .set("collectionFormat", sb("a"))
+ .set("default", sb("b"))
+ .set("description", sb("c"))
+ .set("enum", sb("['d']"))
+ .set("example", sb("e"))
+ .set("exclusiveMaximum", sb("true"))
+ .set("exclusiveMinimum", sb("true"))
+ .set("format", sb("f"))
+ .set("items", sb("{type:'g'}"))
+ .set("maximum", sb("1f"))
+ .set("maxItems", sb("2"))
+ .set("maxLength", sb("3"))
+ .set("minimum", sb("4f"))
+ .set("minItems", sb("5"))
+ .set("minLength", sb("6"))
+ .set("multipleOf", sb("7f"))
+ .set("pattern", sb("h"))
+ .set("$ref", sb("i"))
+ .set("type", sb("j"))
+ .set("uniqueItems", sb("true"));
assertBean(t,
-
"description,type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref,example",
-
"d,j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref,e");
+
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items{type},maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,ref,type,uniqueItems",
+
"a,b,c,[d],e,true,true,f,{g},1.0,2,3,4.0,5,6,7.0,h,i,j,true");
assertMapped(t, (obj,prop) -> obj.get(prop, Object.class),
-
"default,collectionFormat,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items,maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,type,uniqueItems,$ref",
-
"a,c,d,[b],e,true,true,g,{\"type\":\"h\"},123.0,123,123,123.0,123,123,123.0,i,j,true,ref");
+
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items,maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,$ref,type,uniqueItems",
+
"a,b,c,[d],e,true,true,f,{\"type\":\"g\"},1.0,2,3,4.0,5,6,7.0,h,i,j,true");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{description:'d',type:'j',format:'g',items:{type:'h'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref',example:'e'}";
assertJson(JsonParser.DEFAULT.parse(s, HeaderInfo.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new HeaderInfo();
t = t.copy();
@@ -171,59 +176,59 @@ class HeaderInfo_Test extends SimpleTestBase {
assertJson(t, "{}");
t
- .set("default", "a")
- .set("enum", set("b"))
- .set("collectionFormat", "c")
- .set("description", "d")
+ .set("collectionFormat", "a")
+ .set("default", "b")
+ .set("description", "c")
+ .set("enum", set("d"))
.set("example", "e")
.set("exclusiveMaximum", true)
.set("exclusiveMinimum", true)
- .set("format", "g")
- .set("items", items("h"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
- .set("pattern", "i")
+ .set("format", "f")
+ .set("items", items("g"))
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
+ .set("pattern", "h")
+ .set("$ref", "i")
.set("type", "j")
.set("uniqueItems", true)
- .set("$ref", "ref")
.copy();
assertBean(t,
-
"description,type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref,example",
-
"d,j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref,e");
+
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items{type},maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,ref,type,uniqueItems",
+
"a,b,c,[d],e,true,true,f,{g},1.0,2,3,4.0,5,6,7.0,h,i,j,true");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new HeaderInfo();
assertEmpty(t.keySet());
t
- .set("default", "a")
- .set("enum", set("b"))
- .set("collectionFormat", "c")
- .set("description", "d")
+ .set("collectionFormat", "a")
+ .set("default", "b")
+ .set("description", "c")
+ .set("enum", set("d"))
.set("example", "e")
.set("exclusiveMaximum", true)
.set("exclusiveMinimum", true)
- .set("format", "g")
- .set("items", items("h"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
- .set("pattern", "i")
+ .set("format", "f")
+ .set("items", items("g"))
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
+ .set("pattern", "h")
+ .set("$ref", "i")
.set("type", "j")
- .set("uniqueItems", true)
- .set("$ref", "ref");
+ .set("uniqueItems", true);
assertSet(t.keySet(),
"collectionFormat,default,description,enum,example,exclusiveMaximum,exclusiveMinimum,format,items,maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,$ref,type,uniqueItems");
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Info_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Info_Test.java
index 664b9f8e1..3254b9548 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Info_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Info_Test.java
@@ -32,24 +32,25 @@ class Info_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new Info();
- // General
+ // Basic property setters
assertBean(
t.setTitle("a").setDescription("b").setTermsOfService("c").setContact(contact("d")).setLicense(license("e")).setVersion("f"),
"title,description,termsOfService,contact{name},license{name},version",
"a,b,c,{d},{e},f"
);
- // Edge cases for nulls.
- assertNull(t.setTitle(null).getTitle());
- assertNull(t.setDescription(null).getDescription());
- assertNull(t.setTermsOfService(null).getTermsOfService());
- assertNull(t.setVersion(null).getVersion());
+ // Null values
+ assertBean(
+
t.setTitle(null).setDescription(null).setTermsOfService(null).setVersion(null),
+ "title,description,termsOfService,version",
+ "null,null,null,null"
+ );
}
/**
* Test method for {@link Info#set(java.lang.String, java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new Info();
t
@@ -80,13 +81,13 @@ class Info_Test extends SimpleTestBase {
"e,b,f,{a},{c},d,ref");
t
- .set("contact", new StringBuilder("{name:'a'}"))
- .set("description", new StringBuilder("b"))
- .set("license", new StringBuilder("{name:'c'}"))
- .set("termsOfService", new StringBuilder("d"))
- .set("title", new StringBuilder("e"))
- .set("version", new StringBuilder("f"))
- .set("$ref", new StringBuilder("ref"));
+ .set("contact", sb("{name:'a'}"))
+ .set("description", sb("b"))
+ .set("license", sb("{name:'c'}"))
+ .set("termsOfService", sb("d"))
+ .set("title", sb("e"))
+ .set("version", sb("f"))
+ .set("$ref", sb("ref"));
assertBean(t,
"title,description,version,contact{name},license{name},termsOfService,$ref",
@@ -96,24 +97,22 @@ class Info_Test extends SimpleTestBase {
"contact,description,license,termsOfService,title,version,$ref",
"{name:'a'},b,{name:'c'},d,e,f,ref");
- assertType(Contact.class, t.get("contact", Object.class));
- assertType(String.class, t.get("description", Object.class));
- assertType(License.class, t.get("license", Object.class));
- assertType(String.class, t.get("termsOfService", Object.class));
- assertType(String.class, t.get("title", Object.class));
- assertType(String.class, t.get("version", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"contact,description,license,termsOfService,title,version,$ref",
+
"Contact,String,License,String,String,String,StringBuilder");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{title:'e',description:'b',version:'f',contact:{name:'a'},license:{name:'c'},termsOfService:'d','$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, Info.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Info();
t = t.copy();
@@ -135,7 +134,7 @@ class Info_Test extends SimpleTestBase {
"e,b,f,{a},{c},d,ref");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Info();
assertEmpty(t.keySet());
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Items_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Items_Test.java
index 975d6807b..86827ae9c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Items_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Items_Test.java
@@ -34,61 +34,69 @@ class Items_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new Items();
- // General
+ // General - Combined assertBean test
assertBean(
-
t.setType("foo").setFormat("foo").setItems(items("foo")).setCollectionFormat("foo")
-
.setDefault("foo").setMaximum(123).setExclusiveMaximum(true).setMinimum(123)
-
.setExclusiveMinimum(true).setMaxLength(123).setMinLength(123).setPattern("foo")
-
.setMaxItems(123).setMinItems(123).setUniqueItems(true).setEnum(set("foo","bar"))
- .setMultipleOf(123),
-
"type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf",
-
"foo,foo,{foo},foo,foo,123,true,123,true,123,123,foo,123,123,true,[foo,bar],123"
+
t.setCollectionFormat("a").setDefault("b").setEnum(set("c1","c2")).setExclusiveMaximum(true)
+
.setExclusiveMinimum(true).setFormat("d").setItems(items("e")).setMaxItems(1).setMaxLength(2)
+
.setMaximum(3).setMinItems(4).setMinLength(5).setMinimum(6).setMultipleOf(7)
+
.setPattern("f").setType("g").setUniqueItems(true),
+
"collectionFormat,default,enum,exclusiveMaximum,exclusiveMinimum,format,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,type,uniqueItems",
+ "a,b,[c1,c2],true,true,d,{e},1,2,3,4,5,6,7,f,g,true"
);
- // Other cases
- assertString("foo", t.setDefault(new
StringBuilder("foo")).getDefault());
- assertNull(t.setType(null).getType());
- assertNull(t.setFormat(null).getFormat());
- assertNull(t.setCollectionFormat(null).getCollectionFormat());
- assertNull(t.setDefault(null).getDefault());
- assertEquals(123f, t.setMaximum(123f).getMaximum());
- assertEquals(123f, t.setMinimum(123f).getMinimum());
- assertNull(t.setPattern(null).getPattern());
- assertJson(t.setEnum("foo","baz").getEnum(), "['foo','baz']");
- assertJson(t.setEnum(set()).getEnum(), "[]");
- assertNull(t.setEnum((Collection<Object>)null).getEnum());
- assertJson(t.addEnum("foo","bar").getEnum(), "['foo','bar']");
- assertJson(t.addEnum("baz").getEnum(), "['foo','bar','baz']");
- assertEquals(123f, t.setMultipleOf(123f).getMultipleOf());
+ // Null cases
+ assertBean(
+
t.setCollectionFormat(null).setDefault(null).setEnum((Collection<Object>)null).setFormat(null).setPattern(null).setType(null),
+ "collectionFormat,default,enum,format,pattern,type",
+ "null,null,null,null,null,null"
+ );
+
+ // Empty collections
+ assertBean(
+ t.setEnum(set()),
+ "enum",
+ "[]"
+ );
+
+ // Other
+ assertBean(
+
t.setDefault(sb("a")).setMaximum(1f).setMinimum(2f).setMultipleOf(3f),
+ "default,maximum,minimum,multipleOf", "a,1.0,2.0,3.0");
+
+ // addEnum
+ assertSet(t.addEnum("a","b").getEnum(), "a,b");
+ assertSet(t.addEnum("c").getEnum(), "a,b,c");
}
/**
* Test method for {@link Items#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new Items();
t
+ .set("collectionFormat", "c")
.set("default", "a")
.set("enum", set("b"))
- .set("collectionFormat", "c")
.set("exclusiveMaximum", true)
.set("exclusiveMinimum", true)
.set("format", "g")
.set("items", items("h"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("maximum", 1f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("minimum", 4f)
+ .set("multipleOf", 7f)
.set("pattern", "i")
+ .set("$ref", "k")
.set("type", "j")
- .set("uniqueItems", true)
- .set("$ref", "ref");
+ .set("uniqueItems", true);
- assertBean(t,
"type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref",
"j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref");
+ assertBean(t,
+
"collectionFormat,default,enum,exclusiveMaximum,exclusiveMinimum,format,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,ref,type,uniqueItems",
+
"c,a,[b],true,true,g,{h},2,3,1.0,5,6,4.0,7.0,i,k,j,true");
t
.set("default", "a")
@@ -98,75 +106,64 @@ class Items_Test extends SimpleTestBase {
.set("exclusiveMinimum", "true")
.set("format", "g")
.set("items", "{type:'h'}")
- .set("maximum", "123f")
- .set("maxItems", "123")
- .set("maxLength", "123")
- .set("minimum", "123f")
- .set("minItems", "123")
- .set("minLength", "123")
- .set("multipleOf", "123f")
+ .set("maximum", "1f")
+ .set("maxItems", "2")
+ .set("maxLength", "3")
+ .set("minimum", "4f")
+ .set("minItems", "5")
+ .set("minLength", "6")
+ .set("multipleOf", "7f")
.set("pattern", "i")
.set("type", "j")
.set("uniqueItems", "true")
- .set("$ref", "ref");
+ .set("$ref", "k");
- assertBean(t,
"type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref",
"j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref");
+ assertBean(t,
+
"type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref",
+
"j,g,{h},c,a,1.0,true,4.0,true,3,6,i,2,5,true,[b],7.0,k");
t
- .set("default", new StringBuilder("a"))
- .set("enum", new StringBuilder("['b']"))
- .set("collectionFormat", new StringBuilder("c"))
- .set("exclusiveMaximum", new StringBuilder("true"))
- .set("exclusiveMinimum", new StringBuilder("true"))
- .set("format", new StringBuilder("g"))
- .set("items", new StringBuilder("{type:'h'}"))
- .set("maximum", new StringBuilder("123f"))
- .set("maxItems", new StringBuilder("123"))
- .set("maxLength", new StringBuilder("123"))
- .set("minimum", new StringBuilder("123f"))
- .set("minItems", new StringBuilder("123"))
- .set("minLength", new StringBuilder("123"))
- .set("multipleOf", new StringBuilder("123f"))
- .set("pattern", new StringBuilder("i"))
- .set("type", new StringBuilder("j"))
- .set("uniqueItems", new StringBuilder("true"))
- .set("$ref", new StringBuilder("ref"));
-
- assertBean(t,
"type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref",
"j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref");
+ .set("collectionFormat", sb("c"))
+ .set("default", sb("a"))
+ .set("enum", sb("['b']"))
+ .set("exclusiveMaximum", sb("true"))
+ .set("exclusiveMinimum", sb("true"))
+ .set("format", sb("g"))
+ .set("items", sb("{type:'h'}"))
+ .set("maxItems", sb("2"))
+ .set("maxLength", sb("3"))
+ .set("maximum", sb("1f"))
+ .set("minItems", sb("5"))
+ .set("minLength", sb("6"))
+ .set("minimum", sb("4f"))
+ .set("multipleOf", sb("7f"))
+ .set("pattern", sb("i"))
+ .set("$ref", sb("k"))
+ .set("type", sb("j"))
+ .set("uniqueItems", sb("true"));
+
+ assertBean(t,
"collectionFormat,default,enum,exclusiveMaximum,exclusiveMinimum,format,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,ref,type,uniqueItems",
"c,a,[b],true,true,g,{h},2,3,1.0,5,6,4.0,7.0,i,k,j,true");
assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
-
"default,enum,collectionFormat,exclusiveMaximum,exclusiveMinimum,format,items,maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,pattern,type,uniqueItems,$ref",
-
"a,['b'],c,true,true,g,{type:'h'},123.0,123,123,123.0,123,123,123.0,i,j,true,ref");
-
- assertType(StringBuilder.class, t.get("default", Object.class));
- assertType(Set.class, t.get("enum", Object.class));
- assertType(String.class, t.get("collectionFormat",
Object.class));
- assertType(Boolean.class, t.get("exclusiveMaximum",
Object.class));
- assertType(Boolean.class, t.get("exclusiveMinimum",
Object.class));
- assertType(String.class, t.get("format", Object.class));
- assertType(Items.class, t.get("items", Object.class));
- assertType(Float.class, t.get("maximum", Object.class));
- assertType(Integer.class, t.get("maxItems", Object.class));
- assertType(Integer.class, t.get("maxLength", Object.class));
- assertType(Float.class, t.get("minimum", Object.class));
- assertType(Integer.class, t.get("minItems", Object.class));
- assertType(Integer.class, t.get("minLength", Object.class));
- assertType(Float.class, t.get("multipleOf", Object.class));
- assertType(String.class, t.get("pattern", Object.class));
- assertType(String.class, t.get("type", Object.class));
- assertType(Boolean.class, t.get("uniqueItems", Object.class));
- assertType(String.class, t.get("$ref", Object.class));
+
"collectionFormat,default,enum,exclusiveMaximum,exclusiveMinimum,format,items,maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,$ref,type,uniqueItems",
+
"c,a,['b'],true,true,g,{type:'h'},2,3,1.0,5,6,4.0,7.0,i,k,j,true");
+
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"collectionFormat,default,enum,exclusiveMaximum,exclusiveMinimum,format,items,maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,$ref,type,uniqueItems",
+
"String,StringBuilder,LinkedHashSet,Boolean,Boolean,String,Items,Integer,Integer,Float,Integer,Integer,Float,Float,String,String,String,Boolean");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
- var s =
"{type:'j',format:'g',items:{type:'h'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref'}";
+ @Test void b02_roundTripJson() {
+ var s =
"{type:'j',format:'g',items:{type:'h'},collectionFormat:'c','default':'a',maximum:1.0,exclusiveMaximum:true,minimum:4.0,exclusiveMinimum:true,maxLength:3,minLength:6,pattern:'i',maxItems:2,minItems:5,uniqueItems:true,'enum':['b'],multipleOf:7.0,'$ref':'k'}";
assertJson(JsonParser.DEFAULT.parse(s, Items.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Items();
t = t.copy();
@@ -174,35 +171,35 @@ class Items_Test extends SimpleTestBase {
assertJson(t, "{}");
t
+ .set("collectionFormat", "c")
.set("default", "a")
.set("enum", set("b"))
- .set("collectionFormat", "c")
.set("exclusiveMaximum", true)
.set("exclusiveMinimum", true)
.set("format", "g")
.set("items", items("h"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("maximum", 1f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("minimum", 4f)
+ .set("multipleOf", 7f)
.set("pattern", "i")
+ .set("$ref", "k")
.set("type", "j")
.set("uniqueItems", true)
- .set("$ref", "ref")
.copy();
assertBean(t,
-
"type,format,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,ref",
-
"j,g,{h},c,a,123.0,true,123.0,true,123,123,i,123,123,true,[b],123.0,ref");
+
"collectionFormat,default,enum,exclusiveMaximum,exclusiveMinimum,format,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,pattern,ref,type,uniqueItems",
+
"c,a,[b],true,true,g,{h},2,3,1.0,5,6,4.0,7.0,i,k,j,true");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Items();
- assertJson(t.keySet(), "[]");
+ assertEmpty(t.keySet());
t
.set("collectionFormat", "c")
@@ -212,15 +209,15 @@ class Items_Test extends SimpleTestBase {
.set("exclusiveMinimum", true)
.set("format", "g")
.set("items", items("h"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
.set("pattern", "i")
- .set("$ref", "ref")
+ .set("$ref", "k")
.set("type", "j")
.set("uniqueItems", true);
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/License_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/License_Test.java
index 6aaded66d..7c348181b 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/License_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/License_Test.java
@@ -33,21 +33,21 @@ class License_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new License();
- // General
+ // Basic property setters
assertBean(
t.setName("a").setUrl(URI.create("http://b")),
"name,url",
"a,http://b"
);
- // Edge cases for nulls.
+ // Null values
assertNull(t.setName(null).getName());
}
/**
* Test method for {@link License#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new License();
t
@@ -70,9 +70,9 @@ class License_Test extends SimpleTestBase {
"a,b,ref");
t
- .set("name", new StringBuilder("a"))
- .set("url", new StringBuilder("b"))
- .set("$ref", new StringBuilder("ref"));
+ .set("name", sb("a"))
+ .set("url", sb("b"))
+ .set("$ref", sb("ref"));
assertBean(t,
"name,url,$ref",
@@ -82,20 +82,22 @@ class License_Test extends SimpleTestBase {
"name,url,$ref",
"a,b,ref");
- assertType(String.class, t.get("name", Object.class));
- assertType(URI.class, t.get("url", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+ "name,url,$ref",
+ "String,URI,StringBuilder");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s = "{name:'a',url:'b','$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, License.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new License();
t = t.copy();
@@ -113,7 +115,7 @@ class License_Test extends SimpleTestBase {
"a,b,ref");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new License();
assertEmpty(t.keySet());
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Operation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Operation_Test.java
index 62b887fff..b26e54063 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Operation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Operation_Test.java
@@ -34,37 +34,35 @@ class Operation_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new Operation();
- // General
+ // Basic property setters
assertBean(
-
t.setSummary("a").setDescription("b").setExternalDocs(externalDocumentation("c")).setOperationId("d")
-
.setOperationId("e").setDeprecated(true).setTags(set("f1","f2")).setConsumes(set(MediaType.of("text/foo")))
-
.setProduces(set(MediaType.of("text/foo"))).setParameters(set(parameterInfo("g1","g2"))).setResponses(map("1",responseInfo("h")))
-
.setSchemes(set("foo")).setSecurity(alist(map("foo",alist("bar")))),
-
"summary,description,externalDocs{url},operationId,deprecated,tags,consumes,produces,parameters{0{in,name}},responses{1{description}},schemes,security",
-
"a,b,{c},e,true,[f1,f2],[text/foo],[text/foo],{{g1,g2}},{{h}},[foo],[{foo=[bar]}]"
+
t.setConsumes(set(MediaType.of("text/a"))).setDeprecated(true).setDescription("b").setExternalDocs(externalDocumentation("c"))
+
.setOperationId("d").setParameters(set(parameterInfo("e1","e2"))).setProduces(set(MediaType.of("text/f")))
+
.setResponses(map("1",responseInfo("g"))).setSchemes(set("h")).setSecurity(alist(map("i",alist("j")))).setSummary("k").setTags(set("l1","l2")),
+
"consumes,deprecated,description,externalDocs{url},operationId,parameters{0{in,name}},produces,responses{1{description}},schemes,security,summary,tags",
+
"[text/a],true,b,{c},d,{{e1,e2}},[text/f],{{g}},[h],[{i=[j]}],k,[l1,l2]"
);
- // Edge cases for collections.
- assertEmpty(t.setTags(set()).getTags());
- assertNull(t.setTags((Collection<String>)null).getTags());
- assertEmpty(t.setConsumes(set()).getConsumes());
-
assertNull(t.setConsumes((Collection<MediaType>)null).getConsumes());
- assertEmpty(t.setProduces(set()).getProduces());
-
assertNull(t.setProduces((Collection<MediaType>)null).getProduces());
- assertEmpty(t.setParameters(set()).getParameters());
-
assertNull(t.setParameters((Collection<ParameterInfo>)null).getParameters());
- assertEmpty(t.setResponses(map()).getResponses());
-
assertNull(t.setResponses((Map<String,ResponseInfo>)null).getResponses());
- assertEmpty(t.setSchemes(set()).getSchemes());
- assertNull(t.setSchemes((Set<String>)null).getSchemes());
- assertEmpty(t.setSecurity(alist()).getSecurity());
-
assertNull(t.setSecurity((List<Map<String,List<String>>>)null).getSecurity());
+ // Null values
+ assertBean(
+
t.setConsumes((Collection<MediaType>)null).setParameters((Collection<ParameterInfo>)null).setProduces((Collection<MediaType>)null)
+
.setResponses((Map<String,ResponseInfo>)null).setSchemes((Set<String>)null).setSecurity((List<Map<String,List<String>>>)null).setTags((Collection<String>)null),
+
"consumes,parameters,produces,responses,schemes,security,tags",
+ "null,null,null,null,null,null,null"
+ );
+
+ // Other methods - empty collections
+ assertBean(
+
t.setConsumes(set()).setParameters(set()).setProduces(set()).setResponses(map()).setSchemes(set()).setSecurity(alist()).setTags(set()),
+
"consumes,parameters,produces,responses,schemes,security,tags",
+ "[],[],[],{},[],[],[]"
+ );
}
/**
* Test method for {@link Operation#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void a01_set() throws Exception {
+ @Test void a01_set() {
var t = new Operation();
t
@@ -110,19 +108,19 @@ class Operation_Test extends SimpleTestBase {
);
t
- .set("consumes", new StringBuilder("['text/a']"))
- .set("deprecated", new StringBuilder("true"))
- .set("description", new StringBuilder("b"))
- .set("externalDocs", new StringBuilder("{url:'c'}"))
- .set("operationId", new StringBuilder("d"))
- .set("parameters", new
StringBuilder("[{'in':'e1',name:'e2'}]"))
- .set("produces", new StringBuilder("['text/f']"))
- .set("responses", new
StringBuilder("{'1':{description:'g'}}"))
- .set("schemes", new StringBuilder("['h']"))
- .set("security", new StringBuilder("[{i1:['i2']}]"))
- .set("summary", new StringBuilder("j"))
- .set("tags", new StringBuilder("['k']"))
- .set("$ref", new StringBuilder("l"));
+ .set("consumes", sb("['text/a']"))
+ .set("deprecated", sb("true"))
+ .set("description", sb("b"))
+ .set("externalDocs", sb("{url:'c'}"))
+ .set("operationId", sb("d"))
+ .set("parameters", sb("[{'in':'e1',name:'e2'}]"))
+ .set("produces", sb("['text/f']"))
+ .set("responses", sb("{'1':{description:'g'}}"))
+ .set("schemes", sb("['h']"))
+ .set("security", sb("[{i1:['i2']}]"))
+ .set("summary", sb("j"))
+ .set("tags", sb("['k']"))
+ .set("$ref", sb("l"));
assertBean(
t,
@@ -136,35 +134,28 @@ class Operation_Test extends SimpleTestBase {
"['text/a'],true,b,{url:'c'},d,[{'in':'e1',name:'e2'}],['text/f'],{'1':{description:'g'}},['h'],[{i1:['i2']}],j,['k'],l"
);
- assertType(Set.class, t.get("consumes", Object.class));
- assertType(MediaType.class, t.get("consumes",
List.class).get(0));
- assertType(Boolean.class, t.get("deprecated", Object.class));
- assertType(String.class, t.get("description", Object.class));
- assertType(ExternalDocumentation.class, t.get("externalDocs",
Object.class));
- assertType(String.class, t.get("operationId", Object.class));
- assertType(List.class, t.get("parameters", Object.class));
- assertType(ParameterInfo.class, t.get("parameters",
List.class).get(0));
- assertType(Set.class, t.get("produces", Object.class));
- assertType(MediaType.class, t.get("produces",
List.class).get(0));
- assertType(Map.class, t.get("responses", Object.class));
- assertType(String.class, t.get("responses",
Map.class).keySet().iterator().next());
- assertType(ResponseInfo.class, t.get("responses",
Map.class).values().iterator().next());
- assertType(Set.class, t.get("schemes", Object.class));
- assertType(List.class, t.get("security", Object.class));
- assertType(String.class, t.get("summary", Object.class));
- assertType(Set.class, t.get("tags", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"consumes,deprecated,description,externalDocs,operationId,parameters,produces,responses,schemes,security,summary,tags,$ref",
+
"LinkedHashSet,Boolean,String,ExternalDocumentation,String,ArrayList,LinkedHashSet,LinkedHashMap,LinkedHashSet,ArrayList,String,LinkedHashSet,StringBuilder");
+
+ assertMapped(t, (o,k) -> o.get(k,
List.class).get(0).getClass().getSimpleName(), "consumes,parameters,produces",
"MediaType,ParameterInfo,MediaType");
+ assertMapped(t, (o,k) -> {
+ Map<?,?> map = o.get(k, Map.class);
+ return
map.keySet().iterator().next().getClass().getSimpleName() + "," +
map.values().iterator().next().getClass().getSimpleName();
+ }, "responses", "String,ResponseInfo");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{operationId:'d',summary:'j',description:'b',tags:['k'],externalDocs:{url:'c'},consumes:['text/a'],produces:['text/f'],parameters:[{'in':'e1',name:'e2'}],responses:{'1':{description:'g'}},schemes:['h'],deprecated:true,security:[{i1:['i2']}],'$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, Operation.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Operation();
t = t.copy();
@@ -194,7 +185,7 @@ class Operation_Test extends SimpleTestBase {
);
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Operation();
assertEmpty(t.keySet());
@@ -212,11 +203,8 @@ class Operation_Test extends SimpleTestBase {
.set("security", set(map("i1",alist("i2"))))
.set("summary", "j")
.set("tags", set("k"))
- .set("$ref", "ref");
+ .set("$ref", "l");
- assertSet(
- t.keySet(),
-
"consumes","deprecated","description","externalDocs","operationId","parameters","produces","responses","schemes","security","summary","tags","$ref"
- );
+ assertSet(t.keySet(),
"consumes,deprecated,description,externalDocs,operationId,parameters,produces,responses,schemes,security,summary,tags,$ref");
}
}
\ No newline at end of file
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ParameterInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ParameterInfo_Test.java
index 54fd3cba4..d6f88dd33 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ParameterInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ParameterInfo_Test.java
@@ -33,51 +33,47 @@ class ParameterInfo_Test extends SimpleTestBase {
*/
@Test void a01_gettersAndSetters() {
var t = new ParameterInfo();
- assertBean(t.setName("foo"), "name", "foo");
- assertNull(t.setName(null).getName());
- assertBean(t.setIn("foo"), "in", "foo");
- assertNull(t.setIn(null).getIn());
- assertBean(t.setDescription("foo"), "description", "foo");
- assertNull(t.setDescription(null).getDescription());
- assertTrue(t.setRequired(true).getRequired());
-
assertJson(t.setSchema(schemaInfo().setTitle("foo")).getSchema(),
"{title:'foo'}");
- assertBean(t.setType("foo"), "type", "foo");
- assertNull(t.setType(null).getType());
- assertBean(t.setFormat("foo"), "format", "foo");
- assertNull(t.setFormat(null).getFormat());
- assertTrue(t.setAllowEmptyValue(true).getAllowEmptyValue());
- assertJson(t.setItems(items("foo")).getItems(), "{type:'foo'}");
- assertBean(t.setCollectionFormat("foo"), "collectionFormat",
"foo");
- assertNull(t.setCollectionFormat(null).getCollectionFormat());
- assertBean(t.setDefault("foo"), "default", "foo");
- assertString("foo", t.setDefault(new
StringBuilder("foo")).getDefault());
- assertNull(t.setDefault(null).getDefault());
- assertEquals(123, t.setMaximum(123).getMaximum());
- assertEquals(123f, t.setMaximum(123f).getMaximum());
- assertTrue(t.setExclusiveMaximum(true).getExclusiveMaximum());
- assertEquals(123, t.setMinimum(123).getMinimum());
- assertEquals(123f, t.setMinimum(123f).getMinimum());
- assertTrue(t.setExclusiveMinimum(true).getExclusiveMinimum());
- assertEquals(123, t.setMaxLength(123).getMaxLength());
- assertEquals(123, t.setMinLength(123).getMinLength());
- assertBean(t.setPattern("foo"), "pattern", "foo");
- assertNull(t.setPattern(null).getPattern());
- assertEquals(123, t.setMaxItems(123).getMaxItems());
- assertEquals(123, t.setMinItems(123).getMinItems());
- assertTrue(t.setUniqueItems(true).getUniqueItems());
- assertJson(t.setEnum(set("foo","bar")).getEnum(),
"['foo','bar']");
- assertJson(t.setEnum(set()).getEnum(), "[]");
- assertNull(t.setEnum((Collection<Object>)null).getEnum());
- assertJson(t.addEnum("foo","bar").getEnum(), "['foo','bar']");
- assertJson(t.addEnum("baz").getEnum(), "['foo','bar','baz']");
- assertEquals(123, t.setMultipleOf(123).getMultipleOf());
- assertEquals(123f, t.setMultipleOf(123f).getMultipleOf());
+
+ // General - Combined assertBean test
+ assertBean(
+
t.setAllowEmptyValue(true).setCollectionFormat("a").setDefault("b").setDescription("c").setEnum(set("d1","d2"))
+
.setExclusiveMaximum(true).setExclusiveMinimum(true).setFormat("e").setIn("f").setItems(items("g"))
+
.setMaxItems(1).setMaxLength(2).setMaximum(3).setMinItems(4).setMinLength(5).setMinimum(6)
+
.setMultipleOf(7).setName("h").setPattern("i").setRequired(true).setSchema(schemaInfo().setTitle("j"))
+ .setType("k").setUniqueItems(true),
+
"allowEmptyValue,collectionFormat,default,description,enum,exclusiveMaximum,exclusiveMinimum,format,in,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,name,pattern,required,schema{title},type,uniqueItems",
+
"true,a,b,c,[d1,d2],true,true,e,f,{g},1,2,3,4,5,6,7,h,i,true,{j},k,true"
+ );
+
+ // Null cases
+ assertBean(
+
t.setCollectionFormat(null).setDefault(null).setDescription(null).setEnum((Collection<Object>)null)
+
.setFormat(null).setIn(null).setName(null).setPattern(null).setType(null),
+
"collectionFormat,default,description,enum,format,in,name,pattern,type",
+ "null,null,null,null,null,null,null,null,null"
+ );
+
+ // Empty collections
+ assertBean(
+ t.setEnum(set()),
+ "enum",
+ "[]"
+ );
+
+ // Other
+ assertBean(
+
t.setDefault(sb("a")).setMaximum(1f).setMinimum(2f).setMultipleOf(3f),
+ "default,maximum,minimum,multipleOf", "a,1.0,2.0,3.0");
+
+ // addEnum
+ assertSet(t.addEnum("a","b").getEnum(), "a,b");
+ assertSet(t.addEnum("c").getEnum(), "a,b,c");
}
/**
* Test method for {@link ParameterInfo#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void a01_set() throws Exception {
+ @Test void a01_set() {
var t = new ParameterInfo();
t
@@ -91,22 +87,24 @@ class ParameterInfo_Test extends SimpleTestBase {
.set("format", "e")
.set("in", "f")
.set("items", items("g"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
.set("name", "h")
.set("pattern", "i")
.set("required", true)
.set("schema", schemaInfo().setTitle("j"))
.set("type", "k")
.set("uniqueItems", true)
- .set("$ref", "ref");
+ .set("$ref", "l");
- assertJson(t,
"{'in':'f',name:'h',type:'k',description:'d',required:true,schema:{title:'j'},format:'e',allowEmptyValue:true,items:{type:'g'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref'}");
+ assertBean(t,
+
"in,name,type,description,required,schema{title},format,allowEmptyValue,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,$ref",
+
"f,h,k,d,true,{j},e,true,{g},c,a,1.0,true,4.0,true,3,6,i,2,5,true,[b],7.0,l");
t
.set("default", "a")
@@ -119,90 +117,75 @@ class ParameterInfo_Test extends SimpleTestBase {
.set("format", "e")
.set("in", "f")
.set("items", "{type:'g'}")
- .set("maximum", "123.0")
- .set("maxItems", "123")
- .set("maxLength", "123")
- .set("minimum", "123.0")
- .set("minItems", "123")
- .set("minLength", "123")
- .set("multipleOf", "123.0")
+ .set("maximum", "1.0")
+ .set("maxItems", "2")
+ .set("maxLength", "3")
+ .set("minimum", "4.0")
+ .set("minItems", "5")
+ .set("minLength", "6")
+ .set("multipleOf", "7.0")
.set("name", "h")
.set("pattern", "i")
.set("required", "true")
.set("schema", "{title:'j'}")
.set("type", "k")
.set("uniqueItems", "true")
- .set("$ref", "ref");
+ .set("$ref", "l");
- assertJson(t,
"{'in':'f',name:'h',type:'k',description:'d',required:true,schema:{title:'j'},format:'e',allowEmptyValue:true,items:{type:'g'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref'}");
+ assertBean(t,
+
"in,name,type,description,required,schema{title},format,allowEmptyValue,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,$ref",
+
"f,h,k,d,true,{j},e,true,{g},c,a,1.0,true,4.0,true,3,6,i,2,5,true,[b],7.0,l");
t
- .set("default", new StringBuilder("a"))
- .set("enum", new StringBuilder("['b']"))
- .set("allowEmptyValue", new StringBuilder("true"))
- .set("collectionFormat", new StringBuilder("c"))
- .set("description", new StringBuilder("d"))
- .set("exclusiveMaximum", new StringBuilder("true"))
- .set("exclusiveMinimum", new StringBuilder("true"))
- .set("format", new StringBuilder("e"))
- .set("in", new StringBuilder("f"))
- .set("items", new StringBuilder("{type:'g'}"))
- .set("maximum", new StringBuilder("123.0"))
- .set("maxItems", new StringBuilder("123"))
- .set("maxLength", new StringBuilder("123"))
- .set("minimum", new StringBuilder("123.0"))
- .set("minItems", new StringBuilder("123"))
- .set("minLength", new StringBuilder("123"))
- .set("multipleOf", new StringBuilder("123.0"))
- .set("name", new StringBuilder("h"))
- .set("pattern", new StringBuilder("i"))
- .set("required", new StringBuilder("true"))
- .set("schema", new StringBuilder("{title:'j'}"))
- .set("type", new StringBuilder("k"))
- .set("uniqueItems", new StringBuilder("true"))
- .set("$ref", new StringBuilder("ref"));
+ .set("default", sb("a"))
+ .set("enum", sb("['b']"))
+ .set("allowEmptyValue", sb("true"))
+ .set("collectionFormat", sb("c"))
+ .set("description", sb("d"))
+ .set("exclusiveMaximum", sb("true"))
+ .set("exclusiveMinimum", sb("true"))
+ .set("format", sb("e"))
+ .set("in", sb("f"))
+ .set("items", sb("{type:'g'}"))
+ .set("maxItems", sb("2"))
+ .set("maxLength", sb("3"))
+ .set("maximum", sb("1.0"))
+ .set("minItems", sb("5"))
+ .set("minLength", sb("6"))
+ .set("minimum", sb("4.0"))
+ .set("multipleOf", sb("7.0"))
+ .set("name", sb("h"))
+ .set("pattern", sb("i"))
+ .set("$ref", sb("l"))
+ .set("required", sb("true"))
+ .set("schema", sb("{title:'j'}"))
+ .set("type", sb("k"))
+ .set("uniqueItems", sb("true"));
- assertJson(t,
"{'in':'f',name:'h',type:'k',description:'d',required:true,schema:{title:'j'},format:'e',allowEmptyValue:true,items:{type:'g'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref'}");
+ assertBean(t,
+
"allowEmptyValue,collectionFormat,default,description,enum,exclusiveMaximum,exclusiveMinimum,format,in,items{type},maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,name,pattern,$ref,required,schema{title},type,uniqueItems",
+
"true,c,a,d,[b],true,true,e,f,{g},2,3,1.0,5,6,4.0,7.0,h,i,l,true,{j},k,true");
assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
-
"default,enum,allowEmptyValue,collectionFormat,description,exclusiveMaximum,exclusiveMinimum,format,in,items,maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,name,pattern,required,schema,type,uniqueItems,$ref",
-
"a,['b'],true,c,d,true,true,e,f,{type:'g'},123.0,123,123,123.0,123,123,123.0,h,i,true,{title:'j'},k,true,ref");
+
"allowEmptyValue,collectionFormat,default,description,enum,exclusiveMaximum,exclusiveMinimum,format,in,items,maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,name,pattern,$ref,required,schema,type,uniqueItems",
+
"true,c,a,d,['b'],true,true,e,f,{type:'g'},2,3,1.0,5,6,4.0,7.0,h,i,l,true,{title:'j'},k,true");
- assertType(StringBuilder.class, t.get("default", Object.class));
- assertType(Set.class, t.get("enum", Object.class));
- assertType(Boolean.class, t.get("allowEmptyValue",
Object.class));
- assertType(String.class, t.get("collectionFormat",
Object.class));
- assertType(String.class, t.get("description", Object.class));
- assertType(Boolean.class, t.get("exclusiveMaximum",
Object.class));
- assertType(Boolean.class, t.get("exclusiveMinimum",
Object.class));
- assertType(String.class, t.get("format", Object.class));
- assertType(String.class, t.get("in", Object.class));
- assertType(Items.class, t.get("items", Object.class));
- assertType(Float.class, t.get("maximum", Object.class));
- assertType(Integer.class, t.get("maxItems", Object.class));
- assertType(Integer.class, t.get("maxLength", Object.class));
- assertType(Float.class, t.get("minimum", Object.class));
- assertType(Integer.class, t.get("minItems", Object.class));
- assertType(Integer.class, t.get("minLength", Object.class));
- assertType(Float.class, t.get("multipleOf", Object.class));
- assertType(String.class, t.get("name", Object.class));
- assertType(String.class, t.get("pattern", Object.class));
- assertType(Boolean.class, t.get("required", Object.class));
- assertType(SchemaInfo.class, t.get("schema", Object.class));
- assertType(String.class, t.get("type", Object.class));
- assertType(Boolean.class, t.get("uniqueItems", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"allowEmptyValue,collectionFormat,default,description,enum,exclusiveMaximum,exclusiveMinimum,format,in,items,maxItems,maxLength,maximum,minItems,minLength,minimum,multipleOf,name,pattern,$ref,required,schema,type,uniqueItems",
+
"Boolean,String,StringBuilder,String,LinkedHashSet,Boolean,Boolean,String,String,Items,Integer,Integer,Float,Integer,Integer,Float,Float,String,String,StringBuilder,Boolean,SchemaInfo,String,Boolean");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{'in':'f',name:'h',type:'k',description:'d',required:true,schema:{title:'j'},format:'e',allowEmptyValue:true,items:{type:'g'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, ParameterInfo.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new ParameterInfo();
t = t.copy();
@@ -220,29 +203,31 @@ class ParameterInfo_Test extends SimpleTestBase {
.set("format", "e")
.set("in", "f")
.set("items", items("g"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
.set("name", "h")
.set("pattern", "i")
.set("required", true)
.set("schema", schemaInfo().setTitle("j"))
.set("type", "k")
.set("uniqueItems", true)
- .set("$ref", "ref")
+ .set("$ref", "l")
.copy();
- assertJson(t,
"{'in':'f',name:'h',type:'k',description:'d',required:true,schema:{title:'j'},format:'e',allowEmptyValue:true,items:{type:'g'},collectionFormat:'c','default':'a',maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'i',maxItems:123,minItems:123,uniqueItems:true,'enum':['b'],multipleOf:123.0,'$ref':'ref'}");
+ assertBean(t,
+
"in,name,type,description,required,schema{title},format,allowEmptyValue,items{type},collectionFormat,default,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,enum,multipleOf,$ref",
+
"f,h,k,d,true,{j},e,true,{g},c,a,1.0,true,4.0,true,3,6,i,2,5,true,[b],7.0,l");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new ParameterInfo();
- assertJson(t.keySet(), "[]");
+ assertEmpty(t.keySet());
t
.set("allowEmptyValue", true)
@@ -255,25 +240,21 @@ class ParameterInfo_Test extends SimpleTestBase {
.set("format", "e")
.set("in", "f")
.set("items", items("g"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("multipleOf", 123f)
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("minimum", 4f)
+ .set("minItems", 5)
+ .set("minLength", 6)
+ .set("multipleOf", 7f)
.set("name", "h")
.set("pattern", "i")
.set("required", true)
.set("schema", schemaInfo().setTitle("j"))
.set("type", "k")
.set("uniqueItems", true)
- .set("$ref", "ref");
+ .set("$ref", "l");
- assertJson(t.keySet(),
-
"['allowEmptyValue','collectionFormat','default','description','enum','exclusiveMaximum','exclusiveMinimum',"
- +
"'format','in','items','maximum','maxItems','maxLength','minimum','minItems','minLength','multipleOf','name',"
- +
"'pattern','required','schema','type','uniqueItems','$ref']"
- );
+ assertSet(t.keySet(),
"allowEmptyValue,collectionFormat,default,description,enum,exclusiveMaximum,exclusiveMinimum,format,in,items,maximum,maxItems,maxLength,minimum,minItems,minLength,multipleOf,name,pattern,required,schema,type,uniqueItems,$ref");
}
}
\ No newline at end of file
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ResponseInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ResponseInfo_Test.java
index c702a880f..84f780392 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ResponseInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/ResponseInfo_Test.java
@@ -34,21 +34,29 @@ class ResponseInfo_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new ResponseInfo();
- // General
+ // Basic property setters
assertBean(
-
t.setDescription("a").setSchema(schemaInfo().setTitle("b")).setHeaders(map("c",headerInfo("d"))).setExamples(map("e","f","g",alist("h"))),
- "description,schema{title},headers{c{type}},examples",
- "a,{b},{{d}},{e=f,g=[h]}"
+ t.setDescription("a")
+ .setExamples(map("b1","b2","b3",alist("b4")))
+ .setHeaders(map("c1",headerInfo("c2")))
+ .setSchema(schemaInfo().setTitle("d")),
+ "description,examples,headers{c1{type}},schema{title}",
+ "a,{b1=b2,b3=[b4]},{{c2}},{d}"
);
- // Edge cases for collections and nulls.
- assertNull(t.setDescription(null).getDescription());
- assertEmpty(t.setHeaders(map()).getHeaders());
-
assertNull(t.setHeaders((Map<String,HeaderInfo>)null).getHeaders());
- assertEmpty(t.setExamples(map()).getExamples());
-
assertNull(t.setExamples((Map<String,Object>)null).getExamples());
+ // Null values
+ assertBean(
+
t.setDescription(null).setExamples((Map<String,Object>)null).setHeaders((Map<String,HeaderInfo>)null),
+ "description,examples,headers",
+ "null,null,null"
+ );
- // Examples addExample method.
+ // Other methods - empty collections
+ assertBean(
+ t.setExamples(map()).setHeaders(map()),
+ "examples,headers",
+ "{},{}"
+ );
assertMap(
t.setExamples(map()).addExample("text/a",
"a").addExample("text/b", null).addExample(null, "c").getExamples(),
"text/a,text/b,<<<NULL>>>",
@@ -59,64 +67,65 @@ class ResponseInfo_Test extends SimpleTestBase {
/**
* Test method for {@link ResponseInfo#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new ResponseInfo();
t
.set("description", "a")
- .set("examples", map("foo","bar","baz",alist("qux")))
- .set("headers", map("a", headerInfo("a1")))
+ .set("examples", map("b1","b2","b3",alist("b4")))
+ .set("headers", map("c1", headerInfo("c2")))
.set("schema", schemaInfo().setType("d"))
- .set("$ref", "ref");
+ .set("$ref", "e");
// Comprehensive object state validation
assertBean(t,
-
"description,schema{type},headers{a{type}},examples,$ref",
- "a,{d},{{a1}},{foo=bar,baz=[qux]},ref");
+
"description,schema{type},headers{c1{type}},examples,$ref",
+ "a,{d},{{c2}},{b1=b2,b3=[b4]},e");
t
.set("description", "a")
- .set("examples", "{foo:'bar',baz:['qux']}")
- .set("headers", "{a:{type:'a1'}}")
+ .set("examples", "{b1:'b2',b3:['b4']}")
+ .set("headers", "{c1:{type:'c2'}}")
.set("schema", "{type:'d'}")
- .set("$ref", "ref");
+ .set("$ref", "e");
assertBean(t,
-
"description,schema{type},headers{a{type}},examples,$ref",
- "a,{d},{{a1}},{foo=bar,baz=[qux]},ref");
+
"description,examples,headers{c1{type}},schema{type},$ref",
+ "a,{b1=b2,b3=[b4]},{{c2}},{d},e");
t
- .set("description", new StringBuilder("a"))
- .set("examples", new
StringBuilder("{foo:'bar',baz:['qux']}"))
- .set("headers", new StringBuilder("{a:{type:'a1'}}"))
- .set("schema", new StringBuilder("{type:'d'}"))
- .set("$ref", new StringBuilder("ref"));
+ .set("description", sb("a"))
+ .set("examples", sb("{b1:'b2',b3:['b4']}"))
+ .set("headers", sb("{c1:{type:'c2'}}"))
+ .set("schema", sb("{type:'d'}"))
+ .set("$ref", sb("e"));
assertBean(t,
-
"description,schema{type},headers{a{type}},examples,$ref",
- "a,{d},{{a1}},{foo=bar,baz=[qux]},ref");
+
"description,examples,headers{c1{type}},schema{type},$ref",
+ "a,{b1=b2,b3=[b4]},{{c2}},{d},e");
assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
"description,examples,headers,schema,$ref",
-
"a,{foo:'bar',baz:['qux']},{a:{type:'a1'}},{type:'d'},ref");
+ "a,{b1:'b2',b3:['b4']},{c1:{type:'c2'}},{type:'d'},e");
+
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+ "description,examples,headers,schema,$ref",
+
"String,LinkedHashMap,LinkedHashMap,SchemaInfo,StringBuilder");
- assertType(String.class, t.get("description", Object.class));
- assertType(Map.class, t.get("examples", Object.class));
- assertType(Map.class, t.get("headers", Object.class));
assertType(HeaderInfo.class, t.get("headers",
Map.class).values().iterator().next());
- assertType(SchemaInfo.class, t.get("schema", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
- var s =
"{description:'a',schema:{type:'d'},headers:{a:{type:'a1'}},examples:{foo:'bar',baz:['qux']},'$ref':'ref'}";
+ @Test void b02_roundTripJson() {
+ var s =
"{description:'a',schema:{type:'d'},headers:{a:{type:'a1'}},examples:{foo:'bar',baz:['qux']},'$ref':'ref'}";
// Order is determined by @Bean annotation.
assertJson(JsonParser.DEFAULT.parse(s, ResponseInfo.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new ResponseInfo();
t = t.copy();
@@ -125,28 +134,28 @@ class ResponseInfo_Test extends SimpleTestBase {
t
.set("description", "a")
- .set("examples", map("foo","bar","baz",alist("qux")))
- .set("headers", map("a", headerInfo("a1")))
+ .set("examples", map("b1","b2","b3",alist("b4")))
+ .set("headers", map("c1", headerInfo("c2")))
.set("schema", schemaInfo().setType("d"))
- .set("$ref", "ref")
+ .set("$ref", "e")
.copy();
assertBean(t,
-
"description,schema{type},headers{a{type}},examples,$ref",
- "a,{d},{{a1}},{foo=bar,baz=[qux]},ref");
+
"description,examples,headers{c1{type}},schema{type},$ref",
+ "a,{b1=b2,b3=[b4]},{{c2}},{d},e");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new ResponseInfo();
assertEmpty(t.keySet());
t
.set("description", "a")
- .set("examples", map("foo","bar","baz",alist("qux")))
- .set("headers", map("a", headerInfo("a1")))
+ .set("examples", map("b1","b2","b3",alist("b4")))
+ .set("headers", map("c1", headerInfo("c2")))
.set("schema", schemaInfo().setType("d"))
- .set("$ref", "ref");
+ .set("$ref", "e");
assertSet(t.keySet(),
"description,examples,headers,schema,$ref");
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SchemaInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SchemaInfo_Test.java
index e27be40a5..9ca7eea9f 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SchemaInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SchemaInfo_Test.java
@@ -33,101 +33,89 @@ class SchemaInfo_Test extends SimpleTestBase {
*/
@Test void a01_gettersAndSetters() {
var t = new SchemaInfo();
- assertBean(t.setFormat("foo"), "format", "foo");
- assertNull(t.setFormat(null).getFormat());
- assertBean(t.setTitle("foo"), "title", "foo");
- assertNull(t.setTitle(null).getTitle());
- assertBean(t.setDescription("foo"), "description", "foo");
- assertNull(t.setDescription(null).getDescription());
- assertBean(t.setDefault("foo"), "default", "foo");
- assertString("foo", t.setDefault(new
StringBuilder("foo")).getDefault());
- assertNull(t.setDefault(null).getDefault());
- assertEquals(123, t.setMultipleOf(123).getMultipleOf());
- assertEquals(123f, t.setMultipleOf(123f).getMultipleOf());
- assertEquals(123, t.setMaximum(123).getMaximum());
- assertEquals(123f, t.setMaximum(123f).getMaximum());
- assertTrue(t.setExclusiveMaximum(true).getExclusiveMaximum());
- assertEquals(123, t.setMinimum(123).getMinimum());
- assertEquals(123f, t.setMinimum(123f).getMinimum());
- assertTrue(t.setExclusiveMinimum(true).getExclusiveMinimum());
- assertEquals(123, t.setMaxLength(123).getMaxLength());
- assertEquals(123, t.setMinLength(123).getMinLength());
- assertEquals("foo", t.setPattern("foo").getPattern());
- assertNull(t.setPattern(null).getPattern());
- assertEquals(123, t.setMaxItems(123).getMaxItems());
- assertEquals(123, t.setMinItems(123).getMinItems());
- assertTrue(t.setUniqueItems(true).getUniqueItems());
- assertEquals(123, t.setMaxProperties(123).getMaxProperties());
- assertEquals(123, t.setMinProperties(123).getMinProperties());
-
assertJson(t.setRequiredProperties("x").getRequiredProperties(), "['x']");
-
assertNull(t.setRequiredProperties((Collection<String>)null).getRequiredProperties());
- assertJson(t.setEnum(set("foo","bar")).getEnum(),
"['foo','bar']");
- assertJson(t.setEnum(set()).getEnum(), "[]");
- assertNull(t.setEnum((Collection<Object>)null).getEnum());
- assertJson(t.addEnum("foo","bar").getEnum(), "['foo','bar']");
- assertJson(t.addEnum("baz").getEnum(), "['foo','bar','baz']");
- assertEquals("foo", t.setType("foo").getType());
- assertNull(t.setType(null).getType());
- assertJson(t.setItems(items("foo")).getItems(), "{type:'foo'}");
- assertJson(t.setAllOf(set("foo","bar")).getAllOf(),
"['foo','bar']");
- assertJson(t.setAllOf(set()).getAllOf(), "[]");
- assertNull(t.setAllOf((Collection<Object>)null).getAllOf());
- assertJson(t.addAllOf("foo","bar").getAllOf(), "['foo','bar']");
- assertJson(t.setProperties(map("foo",new
SchemaInfo().setType("foo"))).getProperties(), "{foo:{type:'foo'}}");
- assertJson(t.setProperties(map()).getProperties(), "{}");
-
assertNull(t.setProperties((Map<String,SchemaInfo>)null).getProperties());
- assertJson(t.setAdditionalProperties(new
SchemaInfo().setType("foo")).getAdditionalProperties(), "{type:'foo'}");
+
+ // General - Combined assertBean test
+ assertBean(
+ t.setAdditionalProperties(new
SchemaInfo().setType("a")).setAllOf(set("b1","b2")).setDefault("c").setDescription("d")
+
.setDiscriminator("e").setEnum(set("f1","f2")).setExample("g").setExclusiveMaximum(true).setExclusiveMinimum(true)
+
.setExternalDocs(externalDocumentation("h")).setFormat("i").setItems(items("j")).setMaxItems(1).setMaxLength(2)
+
.setMaxProperties(3).setMaximum(4).setMinItems(5).setMinLength(6).setMinProperties(7).setMinimum(8)
+
.setMultipleOf(9).setPattern("k").setProperties(map("l",new
SchemaInfo().setType("m"))).setReadOnly(true)
+
.setRequiredProperties("n").setTitle("o").setType("p").setUniqueItems(true).setXml(xml().setName("q")),
+
"additionalProperties{type},allOf,default,description,discriminator,enum,example,exclusiveMaximum,exclusiveMinimum,externalDocs{url},format,items{type},maxItems,maxLength,maxProperties,maximum,minItems,minLength,minProperties,minimum,multipleOf,pattern,properties{l{type}},readOnly,requiredProperties,title,type,uniqueItems,xml{name}",
+
"{a},[b1,b2],c,d,e,[f1,f2],g,true,true,{h},i,{j},1,2,3,4,5,6,7,8,9,k,{{m}},true,[n],o,p,true,{q}"
+ );
+
+ // Null cases
+ assertBean(
+
t.setAdditionalProperties((SchemaInfo)null).setAllOf((Collection<Object>)null).setDefault(null).setDescription(null)
+
.setDiscriminator(null).setEnum((Collection<Object>)null).setExample(null).setFormat(null)
+
.setPattern(null).setProperties((Map<String,SchemaInfo>)null).setRequiredProperties((Collection<String>)null)
+ .setTitle(null).setType(null),
+
"additionalProperties,allOf,default,description,discriminator,enum,example,format,pattern,properties,requiredProperties,title,type",
+
"null,null,null,null,null,null,null,null,null,null,null,null,null"
+ );
+
+ // Empty collections
+ assertBean(
+ t.setAllOf(set()).setProperties(map()),
+ "allOf,properties",
+ "[],{}"
+ );
+
+ // Other
+ assertBean(
+
t.setDefault(sb("a")).setExample(1).setMaximum(2f).setMinimum(3f).setMultipleOf(4f),
+ "default,example,maximum,minimum,multipleOf",
"a,1,2.0,3.0,4.0");
assertJson(t.setAdditionalProperties(new
SchemaInfo()).getAdditionalProperties(), "{}");
-
assertNull(t.setAdditionalProperties((SchemaInfo)null).getAdditionalProperties());
- assertEquals("foo",
t.setDiscriminator("foo").getDiscriminator());
- assertNull(t.setDiscriminator(null).getDiscriminator());
- assertTrue(t.setReadOnly(true).getReadOnly());
- assertJson(t.setXml(xml().setName("foo")).getXml(),
"{name:'foo'}");
-
assertJson(t.setExternalDocs(externalDocumentation("foo")).getExternalDocs(),
"{url:'foo'}");
- assertEquals("foo", t.setExample("foo").getExample());
- assertEquals(123, t.setExample(123).getExample());
- assertNull(t.setExample(null).getExample());
+
+ // addEnum and addAllOf
+ assertSet(t.addEnum("a","b").getEnum(), "a,b");
+ assertSet(t.addEnum("c").getEnum(), "a,b,c");
+ assertSet(t.addAllOf("d","e").getAllOf(), "d,e");
}
/**
* Test method for {@link SchemaInfo#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new SchemaInfo();
t
- .set("default", "a")
- .set("enum", set("b"))
.set("additionalProperties", map("c",alist("c1")))
.set("allOf", set("d"))
+ .set("default", "a")
.set("description", "e")
.set("discriminator", "f")
+ .set("enum", set("b"))
.set("example", "g")
.set("exclusiveMaximum", true)
.set("exclusiveMinimum", true)
.set("externalDocs", externalDocumentation("h"))
.set("format", "i")
.set("items", items("j"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("maxProperties", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("minProperties", 123)
- .set("multipleOf", 123f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("maxProperties", 4)
+ .set("maximum", 1f)
+ .set("minItems", 6)
+ .set("minLength", 7)
+ .set("minProperties", 8)
+ .set("minimum", 5f)
+ .set("multipleOf", 9f)
.set("pattern", "k")
.set("properties", map("l",map("l1", 1)))
.set("readOnly", true)
+ .set("$ref", "p")
.set("requiredProperties", set("x"))
.set("title", "m")
.set("type", "n")
.set("uniqueItems", true)
- .set("xml", xml().setName("o"))
- .set("$ref", "ref");
+ .set("xml", xml().setName("o"));
- assertJson(t,
"{format:'i',title:'m',description:'e','default':'a',multipleOf:123.0,maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'k',maxItems:123,minItems:123,uniqueItems:true,maxProperties:123,minProperties:123,requiredProperties:['x'],'enum':['b'],type:'n',items:{type:'j'},allOf:['d'],properties:{l:{l1:1}},additionalProperties:{c:['c1']},discriminator:'f',readOnly:true,xml:{name:'o'},externalDocs:{url:'h'},example:'g','$r
[...]
+ assertBean(t,
+
"additionalProperties{c},allOf,default,description,discriminator,enum,example,exclusiveMaximum,exclusiveMinimum,externalDocs{url},format,items{type},maxItems,maxLength,maxProperties,maximum,minItems,minLength,minProperties,minimum,multipleOf,pattern,properties{l{l1}},readOnly,ref,requiredProperties,title,type,uniqueItems,xml{name}",
+
"{[c1]},[d],a,e,f,[b],g,true,true,{h},i,{j},2,3,4,1.0,6,7,8,5.0,9.0,k,{{1}},true,p,[x],m,n,true,{o}");
t
.set("default", "a")
@@ -142,15 +130,15 @@ class SchemaInfo_Test extends SimpleTestBase {
.set("externalDocs", "{url:'h'}")
.set("format", "i")
.set("items", "{type:'j'}")
- .set("maximum", "123.0")
- .set("maxItems", "123")
- .set("maxLength", "123")
- .set("maxProperties", "123")
- .set("minimum", "123.0")
- .set("minItems", "123")
- .set("minLength", "123")
- .set("minProperties", "123")
- .set("multipleOf", "123.0")
+ .set("maximum", "1.0")
+ .set("maxItems", "2")
+ .set("maxLength", "3")
+ .set("maxProperties", "4")
+ .set("minimum", "5.0")
+ .set("minItems", "6")
+ .set("minLength", "7")
+ .set("minProperties", "8")
+ .set("multipleOf", "9.0")
.set("pattern", "k")
.set("properties", "{l:{l1:1}}")
.set("readOnly", "true")
@@ -159,89 +147,68 @@ class SchemaInfo_Test extends SimpleTestBase {
.set("type", "n")
.set("uniqueItems", "true")
.set("xml", "{name:'o'}")
- .set("$ref", "ref");
+ .set("$ref", "p");
- assertJson(t,
"{format:'i',title:'m',description:'e','default':'a',multipleOf:123.0,maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'k',maxItems:123,minItems:123,uniqueItems:true,maxProperties:123,minProperties:123,requiredProperties:['x'],'enum':['b'],type:'n',items:{type:'j'},allOf:['d'],properties:{l:{l1:1}},additionalProperties:{c:['c1']},discriminator:'f',readOnly:true,xml:{name:'o'},externalDocs:{url:'h'},example:'g','$r
[...]
+ assertBean(t,
+
"format,title,description,default,multipleOf,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,maxProperties,minProperties,requiredProperties,enum,type,items{type},allOf,properties{l{l1}},additionalProperties{c},discriminator,readOnly,xml{name},externalDocs{url},example,ref",
+
"i,m,e,a,9.0,1.0,true,5.0,true,3,7,k,2,6,true,4,8,[x],[b],n,{j},[d],{{1}},{[c1]},f,true,{o},{h},g,p");
t
- .set("default", new StringBuilder("a"))
- .set("enum", new StringBuilder("['b']"))
- .set("additionalProperties", new
StringBuilder("{c:['c1']}"))
- .set("allOf", new StringBuilder("['d']"))
- .set("description", new StringBuilder("e"))
- .set("discriminator", new StringBuilder("f"))
- .set("example", new StringBuilder("g"))
- .set("exclusiveMaximum", new StringBuilder("true"))
- .set("exclusiveMinimum", new StringBuilder("true"))
- .set("externalDocs", new StringBuilder("{url:'h'}"))
- .set("format", new StringBuilder("i"))
- .set("items", new StringBuilder("{type:'j'}"))
- .set("maximum", new StringBuilder("123.0"))
- .set("maxItems", new StringBuilder("123"))
- .set("maxLength", new StringBuilder("123"))
- .set("maxProperties", new StringBuilder("123"))
- .set("minimum", new StringBuilder("123.0"))
- .set("minItems", new StringBuilder("123"))
- .set("minLength", new StringBuilder("123"))
- .set("minProperties", new StringBuilder("123"))
- .set("multipleOf", new StringBuilder("123.0"))
- .set("pattern", new StringBuilder("k"))
- .set("properties", new StringBuilder("{l:{l1:1}}"))
- .set("readOnly", new StringBuilder("true"))
- .set("requiredProperties", new StringBuilder("['x']"))
- .set("title", new StringBuilder("m"))
- .set("type", new StringBuilder("n"))
- .set("uniqueItems", new StringBuilder("true"))
- .set("xml", new StringBuilder("{name:'o'}"))
- .set("$ref", new StringBuilder("ref"));
+ .set("default", sb("a"))
+ .set("enum", sb("['b']"))
+ .set("additionalProperties", sb("{c:['c1']}"))
+ .set("allOf", sb("['d']"))
+ .set("description", sb("e"))
+ .set("discriminator", sb("f"))
+ .set("example", sb("g"))
+ .set("exclusiveMaximum", sb("true"))
+ .set("exclusiveMinimum", sb("true"))
+ .set("externalDocs", sb("{url:'h'}"))
+ .set("format", sb("i"))
+ .set("items", sb("{type:'j'}"))
+ .set("maximum", sb("1.0"))
+ .set("maxItems", sb("2"))
+ .set("maxLength", sb("3"))
+ .set("maxProperties", sb("4"))
+ .set("minimum", sb("5.0"))
+ .set("minItems", sb("6"))
+ .set("minLength", sb("7"))
+ .set("minProperties", sb("8"))
+ .set("multipleOf", sb("9.0"))
+ .set("pattern", sb("k"))
+ .set("properties", sb("{l:{l1:1}}"))
+ .set("readOnly", sb("true"))
+ .set("requiredProperties", sb("['x']"))
+ .set("title", sb("m"))
+ .set("type", sb("n"))
+ .set("uniqueItems", sb("true"))
+ .set("xml", sb("{name:'o'}"))
+ .set("$ref", sb("p"));
- assertJson(t,
"{format:'i',title:'m',description:'e','default':'a',multipleOf:123.0,maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'k',maxItems:123,minItems:123,uniqueItems:true,maxProperties:123,minProperties:123,requiredProperties:['x'],'enum':['b'],type:'n',items:{type:'j'},allOf:['d'],properties:{l:{l1:1}},additionalProperties:{c:['c1']},discriminator:'f',readOnly:true,xml:{name:'o'},externalDocs:{url:'h'},example:'g','$r
[...]
+ assertBean(t,
+
"format,title,description,default,multipleOf,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,maxProperties,minProperties,requiredProperties,enum,type,items{type},allOf,properties{l{l1}},additionalProperties{c},discriminator,readOnly,xml{name},externalDocs{url},example,ref",
+
"i,m,e,a,9.0,1.0,true,5.0,true,3,7,k,2,6,true,4,8,[x],[b],n,{j},[d],{{1}},{[c1]},f,true,{o},{h},g,p");
assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
"default,enum,additionalProperties,allOf,description,discriminator,example,exclusiveMaximum,exclusiveMinimum,externalDocs,format,items,maximum,maxItems,maxLength,maxProperties,minimum,minItems,minLength,minProperties,multipleOf,pattern,properties,readOnly,requiredProperties,title,type,uniqueItems,xml,$ref",
-
"a,['b'],{c:['c1']},['d'],e,f,g,true,true,{url:'h'},i,{type:'j'},123.0,123,123,123,123.0,123,123,123,123.0,k,{l:{l1:1}},true,['x'],m,n,true,{name:'o'},ref");
+
"a,['b'],{c:['c1']},['d'],e,f,g,true,true,{url:'h'},i,{type:'j'},1.0,2,3,4,5.0,6,7,8,9.0,k,{l:{l1:1}},true,['x'],m,n,true,{name:'o'},p");
- assertType(StringBuilder.class, t.get("default", Object.class));
- assertType(Set.class, t.get("enum", Object.class));
- assertType(SchemaInfo.class, t.get("additionalProperties",
Object.class));
- assertType(Set.class, t.get("allOf", Object.class));
- assertType(String.class, t.get("description", Object.class));
- assertType(String.class, t.get("discriminator", Object.class));
- assertType(StringBuilder.class, t.get("example", Object.class));
- assertType(Boolean.class, t.get("exclusiveMaximum",
Object.class));
- assertType(Boolean.class, t.get("exclusiveMinimum",
Object.class));
- assertType(ExternalDocumentation.class, t.get("externalDocs",
Object.class));
- assertType(String.class, t.get("format", Object.class));
- assertType(Items.class, t.get("items", Object.class));
- assertType(Float.class, t.get("maximum", Object.class));
- assertType(Integer.class, t.get("maxItems", Object.class));
- assertType(Integer.class, t.get("maxLength", Object.class));
- assertType(Integer.class, t.get("maxProperties", Object.class));
- assertType(Float.class, t.get("minimum", Object.class));
- assertType(Integer.class, t.get("minItems", Object.class));
- assertType(Integer.class, t.get("minLength", Object.class));
- assertType(Integer.class, t.get("minProperties", Object.class));
- assertType(Float.class, t.get("multipleOf", Object.class));
- assertType(String.class, t.get("pattern", Object.class));
- assertType(Map.class, t.get("properties", Object.class));
- assertType(Boolean.class, t.get("readOnly", Object.class));
- assertType(Set.class, t.get("requiredProperties",
Object.class));
- assertType(String.class, t.get("title", Object.class));
- assertType(String.class, t.get("type", Object.class));
- assertType(Boolean.class, t.get("uniqueItems", Object.class));
- assertType(Xml.class, t.get("xml", Object.class));
- assertType(String.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"default,enum,additionalProperties,allOf,description,discriminator,example,exclusiveMaximum,exclusiveMinimum,externalDocs,format,items,maximum,maxItems,maxLength,maxProperties,minimum,minItems,minLength,minProperties,multipleOf,pattern,properties,readOnly,requiredProperties,title,type,uniqueItems,xml,$ref",
+
"StringBuilder,LinkedHashSet,SchemaInfo,LinkedHashSet,String,String,StringBuilder,Boolean,Boolean,ExternalDocumentation,String,Items,Float,Integer,Integer,Integer,Float,Integer,Integer,Integer,Float,String,LinkedHashMap,Boolean,LinkedHashSet,String,String,Boolean,Xml,String");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
- var s =
"{format:'i',title:'m',description:'e','default':'a',multipleOf:123.0,maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'k',maxItems:123,minItems:123,uniqueItems:true,maxProperties:123,minProperties:123,requiredProperties:['x'],'enum':['b'],type:'n',items:{type:'j'},allOf:['d'],properties:{l:{l1:1}},additionalProperties:{c:['c1']},discriminator:'f',readOnly:true,xml:{name:'o'},externalDocs:{url:'h'},example:'g','$ref':'ref'}";
+ @Test void b02_roundTripJson() {
+ var s =
"{format:'i',title:'m',description:'e','default':'a',multipleOf:9.0,maximum:1.0,exclusiveMaximum:true,minimum:5.0,exclusiveMinimum:true,maxLength:3,minLength:7,pattern:'k',maxItems:2,minItems:6,uniqueItems:true,maxProperties:4,minProperties:8,requiredProperties:['x'],'enum':['b'],type:'n',items:{type:'j'},allOf:['d'],properties:{l:{l1:1}},additionalProperties:{c:['c1']},discriminator:'f',readOnly:true,xml:{name:'o'},externalDocs:{url:'h'},example:'g','$ref':'p'}";
assertJson(JsonParser.DEFAULT.parse(s, SchemaInfo.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new SchemaInfo();
t = t.copy();
@@ -261,15 +228,15 @@ class SchemaInfo_Test extends SimpleTestBase {
.set("externalDocs", externalDocumentation("h"))
.set("format", "i")
.set("items", items("j"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("maxProperties", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("minProperties", 123)
- .set("multipleOf", 123f)
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("maxProperties", 4)
+ .set("minimum", 5f)
+ .set("minItems", 6)
+ .set("minLength", 7)
+ .set("minProperties", 8)
+ .set("multipleOf", 9f)
.set("pattern", "k")
.set("properties", map("l",map("l1", 1)))
.set("readOnly", true)
@@ -278,16 +245,18 @@ class SchemaInfo_Test extends SimpleTestBase {
.set("type", "n")
.set("uniqueItems", true)
.set("xml", xml().setName("o"))
- .set("$ref", "ref")
+ .set("$ref", "p")
.copy();
- assertJson(t,
"{format:'i',title:'m',description:'e','default':'a',multipleOf:123.0,maximum:123.0,exclusiveMaximum:true,minimum:123.0,exclusiveMinimum:true,maxLength:123,minLength:123,pattern:'k',maxItems:123,minItems:123,uniqueItems:true,maxProperties:123,minProperties:123,requiredProperties:['x'],'enum':['b'],type:'n',items:{type:'j'},allOf:['d'],properties:{l:{l1:1}},additionalProperties:{c:['c1']},discriminator:'f',readOnly:true,xml:{name:'o'},externalDocs:{url:'h'},example:'g','$r
[...]
+ assertBean(t,
+
"format,title,description,default,multipleOf,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,maxItems,minItems,uniqueItems,maxProperties,minProperties,requiredProperties,enum,type,items{type},allOf,properties{l{l1}},additionalProperties{c},discriminator,readOnly,xml{name},externalDocs{url},example,ref",
+
"i,m,e,a,9.0,1.0,true,5.0,true,3,7,k,2,6,true,4,8,[x],[b],n,{j},[d],{{1}},{[c1]},f,true,{o},{h},g,p");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new SchemaInfo();
- assertJson(t.keySet(), "[]");
+ assertEmpty(t.keySet());
t
.set("additionalProperties", map("c",alist("c1")))
@@ -302,29 +271,25 @@ class SchemaInfo_Test extends SimpleTestBase {
.set("externalDocs", externalDocumentation("h"))
.set("format", "i")
.set("items", items("j"))
- .set("maximum", 123f)
- .set("maxItems", 123)
- .set("maxLength", 123)
- .set("maxProperties", 123)
- .set("minimum", 123f)
- .set("minItems", 123)
- .set("minLength", 123)
- .set("minProperties", 123)
- .set("multipleOf", 123f)
+ .set("maximum", 1f)
+ .set("maxItems", 2)
+ .set("maxLength", 3)
+ .set("maxProperties", 4)
+ .set("minimum", 5f)
+ .set("minItems", 6)
+ .set("minLength", 7)
+ .set("minProperties", 8)
+ .set("multipleOf", 9f)
.set("pattern", "k")
.set("properties", map("l",map("l1", 1)))
.set("readOnly", true)
- .set("$ref", "ref")
+ .set("$ref", "p")
.set("requiredProperties", set("x"))
.set("title", "m")
.set("type", "n")
.set("uniqueItems", true)
.set("xml", xml().setName("o"));
- assertJson(t.keySet(),
-
"['additionalProperties','allOf','default','description','discriminator','enum','example','exclusiveMaximum','exclusiveMinimum',"
- +
"'externalDocs','format','items','maximum','maxItems','maxLength','maxProperties','minimum','minItems','minLength','minProperties',"
- +
"'multipleOf','pattern','properties','readOnly','$ref','requiredProperties','title','type','uniqueItems','xml']"
- );
+ assertSet(t.keySet(),
"additionalProperties,allOf,default,description,discriminator,enum,example,exclusiveMaximum,exclusiveMinimum,externalDocs,format,items,maximum,maxItems,maxLength,maxProperties,minimum,minItems,minLength,minProperties,multipleOf,pattern,properties,readOnly,$ref,requiredProperties,title,type,uniqueItems,xml");
}
}
\ No newline at end of file
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SecurityScheme_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SecurityScheme_Test.java
index 5b2820a97..a23248c91 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SecurityScheme_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/SecurityScheme_Test.java
@@ -33,7 +33,7 @@ class SecurityScheme_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new SecurityScheme();
- // General
+ // Basic property setters
assertBean(
t.setType("a").setDescription("b").setName("c").setIn("d").setFlow("e")
.setAuthorizationUrl("f").setTokenUrl("g").setScopes(map("h1","h2")),
@@ -41,22 +41,22 @@ class SecurityScheme_Test extends SimpleTestBase {
"a,b,c,d,e,f,g,{h1=h2}"
);
- // Edge cases for nulls and collections.
- assertNull(t.setType(null).getType());
- assertNull(t.setDescription(null).getDescription());
- assertNull(t.setName(null).getName());
- assertNull(t.setIn(null).getIn());
- assertNull(t.setFlow(null).getFlow());
- assertNull(t.setAuthorizationUrl(null).getAuthorizationUrl());
- assertNull(t.setTokenUrl(null).getTokenUrl());
+ // Null values
+ assertBean(
+
t.setType(null).setDescription(null).setName(null).setIn(null).setFlow(null)
+
.setAuthorizationUrl(null).setTokenUrl(null).setScopes((Map<String,String>)null),
+
"type,description,name,in,flow,authorizationUrl,tokenUrl,scopes",
+ "null,null,null,null,null,null,null,null"
+ );
+
+ // Other methods
assertEmpty(t.setScopes(map()).getScopes());
- assertNull(t.setScopes((Map<String,String>)null).getScopes());
}
/**
* Test method for {@link SecurityScheme#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new SecurityScheme();
t
@@ -91,15 +91,15 @@ class SecurityScheme_Test extends SimpleTestBase {
"g,b,e,d,c,a,f,{foo=bar},ref");
t
- .set("authorizationUrl", new StringBuilder("a"))
- .set("description", new StringBuilder("b"))
- .set("flow", new StringBuilder("c"))
- .set("in", new StringBuilder("d"))
- .set("name", new StringBuilder("e"))
- .set("scopes", new StringBuilder("{foo:'bar'}"))
- .set("tokenUrl", new StringBuilder("f"))
- .set("type", new StringBuilder("g"))
- .set("$ref", new StringBuilder("ref"));
+ .set("authorizationUrl", sb("a"))
+ .set("description", sb("b"))
+ .set("flow", sb("c"))
+ .set("in", sb("d"))
+ .set("name", sb("e"))
+ .set("scopes", sb("{foo:'bar'}"))
+ .set("tokenUrl", sb("f"))
+ .set("type", sb("g"))
+ .set("$ref", sb("ref"));
assertBean(t,
"type,description,name,in,flow,authorizationUrl,tokenUrl,scopes,$ref",
@@ -109,26 +109,22 @@ class SecurityScheme_Test extends SimpleTestBase {
"authorizationUrl,description,flow,in,name,scopes,tokenUrl,type,$ref",
"a,b,c,d,e,{foo:'bar'},f,g,ref");
- assertType(String.class, t.get("authorizationUrl",
Object.class));
- assertType(String.class, t.get("description", Object.class));
- assertType(String.class, t.get("flow", Object.class));
- assertType(String.class, t.get("in", Object.class));
- assertType(String.class, t.get("name", Object.class));
- assertType(Map.class, t.get("scopes", Object.class));
- assertType(String.class, t.get("tokenUrl", Object.class));
- assertType(String.class, t.get("type", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"authorizationUrl,description,flow,in,name,scopes,tokenUrl,type,$ref",
+
"String,String,String,String,String,LinkedHashMap,String,String,StringBuilder");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{type:'g',description:'b',name:'e','in':'d',flow:'c',authorizationUrl:'a',tokenUrl:'f',scopes:{foo:'bar'},'$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, SecurityScheme.class),
s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new SecurityScheme();
t = t.copy();
@@ -152,7 +148,7 @@ class SecurityScheme_Test extends SimpleTestBase {
"g,b,e,d,c,a,f,{foo=bar},ref");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new SecurityScheme();
assertEmpty(t.keySet());
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Swagger_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Swagger_Test.java
index cc2ef7b50..eb3d78433 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Swagger_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Swagger_Test.java
@@ -35,56 +35,72 @@ class Swagger_Test extends SimpleTestBase {
*/
@Test void a01_gettersAndSetters() {
var t = new Swagger();
- assertBean(t.setSwagger("foo"), "swagger", "foo");
- assertNull(t.setSwagger(null).getSwagger());
- assertJson(t.setInfo(info("foo", "bar")).getInfo(),
"{title:'foo',version:'bar'}");
- assertBean(t.setHost("foo"), "host", "foo");
- assertNull(t.setHost(null).getHost());
- assertBean(t.setBasePath("foo"), "basePath", "foo");
- assertNull(t.setBasePath(null).getBasePath());
- assertJson(t.setSchemes(set("foo","bar")).getSchemes(),
"['foo','bar']");
- assertJson(t.setSchemes(set()).getSchemes(), "[]");
- assertNull(t.setSchemes((Collection<String>)null).getSchemes());
-
assertJson(t.setConsumes(set(MediaType.of("text/foo"))).getConsumes(),
"['text/foo']");
- assertJson(t.setConsumes(set()).getConsumes(), "[]");
-
assertNull(t.setConsumes((Collection<MediaType>)null).getConsumes());
-
assertJson(t.setProduces(set(MediaType.of("text/foo"))).getProduces(),
"['text/foo']");
- assertJson(t.setProduces(set()).getProduces(), "[]");
-
assertNull(t.setProduces((Collection<MediaType>)null).getProduces());
- assertJson(t.setPaths(map("foo", new
OperationMap().append("bar",operation().setSummary("baz")))).getPaths(),
"{foo:{bar:{summary:'baz'}}}");
- assertNull(t.setPaths(map()).getPaths());
-
assertNull(t.setPaths((Map<String,OperationMap>)null).getPaths());
- assertJson(t.setPaths(null).addPath("a", "a1",
operation().setDescription("a2")).addPath("b", null, null).getPaths(),
"{a:{a1:{description:'a2'}},b:{null:null}}");
-
assertJson(t.setDefinitions(map("foo",JsonMap.of("type","bar"))).getDefinitions(),
"{foo:{type:'bar'}}");
- assertJson(t.setDefinitions(map()).getDefinitions(), "{}");
-
assertNull(t.setDefinitions((Map<String,JsonMap>)null).getDefinitions());
- assertJson(t.setDefinitions(null).addDefinition("a",
JsonMap.of("type","a1")).addDefinition("b", (JsonMap)null).addDefinition(null,
JsonMap.of("type", "c1")).getDefinitions(),
"{a:{type:'a1'},b:null,null:{type:'c1'}}");
-
assertJson(t.setParameters(map("foo",parameterInfo().setName("bar"))).getParameters(),
"{foo:{name:'bar'}}");
- assertJson(t.setParameters(map()).getParameters(), "{}");
-
assertNull(t.setParameters((Map<String,ParameterInfo>)null).getParameters());
- assertJson(t.setParameters(null).addParameter("a",
parameterInfo().setIn("a1")).addParameter("b", null).addParameter(null,
parameterInfo().setIn("c1")).getParameters(),
"{a:{'in':'a1'},b:null,null:{'in':'c1'}}");
-
assertJson(t.setResponses(map("123",responseInfo("bar"))).getResponses(),
"{'123':{description:'bar'}}");
- assertJson(t.setResponses(map()).getResponses(), "{}");
-
assertNull(t.setResponses((Map<String,ResponseInfo>)null).getResponses());
- assertJson(t.setResponses(null).addResponse("a",
responseInfo("a1")).addResponse(null, responseInfo("b1")).addResponse("c",
null).getResponses(), "{a:{description:'a1'},null:{description:'b1'},c:null}");
-
assertJson(t.setSecurityDefinitions(map("foo",securityScheme("bar"))).getSecurityDefinitions(),
"{foo:{type:'bar'}}");
-
assertJson(t.setSecurityDefinitions(map()).getSecurityDefinitions(), "{}");
-
assertNull(t.setSecurityDefinitions((Map<String,SecurityScheme>)null).getSecurityDefinitions());
-
assertJson(t.setSecurityDefinitions(null).addSecurityDefinition("a",
securityScheme("a1")).addSecurityDefinition("b",
null).addSecurityDefinition(null,
securityScheme("c1")).getSecurityDefinitions(),
"{a:{type:'a1'},b:null,null:{type:'c1'}}");
-
assertJson(t.setSecurity(set(map("foo",alist("bar")))).getSecurity(),
"[{foo:['bar']}]");
- assertJson(t.setSecurity(set()).getSecurity(), "[]");
- assertNull(t.setSecurity((Collection<Map<String,
List<String>>>)null).getSecurity());
- assertJson(t.setSecurity(null).addSecurity("a", "a1",
"a2").addSecurity("b", (String)null).addSecurity(null, "d1",
"d2").getSecurity(), "[{a:['a1','a2']},{b:[null]},{null:['d1','d2']}]");
- assertJson(t.setTags(set(tag("foo"))).getTags(),
"[{name:'foo'}]");
- assertJson(t.setTags(set()).getTags(), "[]");
- assertNull(t.setTags((Collection<Tag>)null).getTags());
-
assertJson(t.setExternalDocs(externalDocumentation("foo")).getExternalDocs(),
"{url:'foo'}");
+
+ // Basic property setters
+ assertBean(
+ t.setBasePath("a").setHost("b").setSwagger("c"),
+ "basePath,host,swagger",
+ "a,b,c"
+ );
+
+ // Complex objects
+ assertBean(
+ t.setInfo(info("a",
"b")).setExternalDocs(externalDocumentation("c"))
+
.setSchemes(set("d","e")).setConsumes(set(MediaType.of("text/f")))
+ .setProduces(set(MediaType.of("text/g")))
+ .setPaths(map("h", new
OperationMap().append("i",operation().setSummary("j"))))
+ .setDefinitions(map("k",JsonMap.of("type","l")))
+
.setParameters(map("m",parameterInfo().setName("n")))
+ .setResponses(map("1",responseInfo("o")))
+
.setSecurityDefinitions(map("p",securityScheme("q")))
+ .setSecurity(set(map("r",alist("s"))))
+ .setTags(set(tag("t"))),
+
"consumes,definitions{k{type}},externalDocs{url},info{title,version},parameters{m{name}},paths{h{i{summary}}},produces,responses{1{description}},schemes,security,securityDefinitions{p{type}},tags{#{name}}",
+
"[text/f],{{l}},{c},{a,b},{{n}},{{{j}}},[text/g],{{o}},[d,e],[{r=[s]}],{{q}},{[{t}]}"
+ );
+
+ // Null values
+ assertBean(
+
t.setSwagger(null).setHost(null).setBasePath(null).setSchemes((Collection<String>)null)
+
.setConsumes((Collection<MediaType>)null).setProduces((Collection<MediaType>)null)
+
.setPaths((Map<String,OperationMap>)null).setDefinitions((Map<String,JsonMap>)null)
+
.setParameters((Map<String,ParameterInfo>)null).setResponses((Map<String,ResponseInfo>)null)
+
.setSecurityDefinitions((Map<String,SecurityScheme>)null).setSecurity((Collection<Map<String,
List<String>>>)null)
+ .setTags((Collection<Tag>)null),
+
"basePath,consumes,definitions,host,parameters,paths,produces,responses,schemes,security,securityDefinitions,swagger,tags",
+
"null,null,null,null,null,null,null,null,null,null,null,null,null"
+ );
+
+ // Other methods - empty collections/maps
+ assertBean(
+
t.setSchemes(set()).setConsumes(set()).setProduces(set()).setDefinitions(map())
+
.setParameters(map()).setResponses(map()).setSecurityDefinitions(map())
+ .setSecurity(set()).setTags(set()),
+
"consumes,definitions,parameters,produces,responses,schemes,security,securityDefinitions,tags",
+ "[],{},{},[],{},[],[],{},[]"
+ );
+
+ assertNull(t.setPaths(map()).getPaths()); // BUG?
+
+ // addX methods.
+ assertBean(t.setPaths(null).addPath("a", "a1",
operation().setDescription("a2")).addPath("b", null, null),
+ "paths",
"{a={a1={\"description\":\"a2\"}},b={null=null}}");
+ assertBean(t.setDefinitions(null).addDefinition("a",
JsonMap.of("type","a1")).addDefinition("b", (JsonMap)null).addDefinition(null,
JsonMap.of("type", "c1")),
+ "definitions", "{a={type=a1},b=null,null={type=c1}}");
+ assertBean(t.setParameters(null).addParameter("a",
parameterInfo().setIn("a1")).addParameter("b", null).addParameter(null,
parameterInfo().setIn("c1")),
+ "parameters",
"{a={\"in\":\"a1\"},b=null,null={\"in\":\"c1\"}}");
+ assertBean(t.setResponses(null).addResponse("a",
responseInfo("a1")).addResponse(null, responseInfo("b1")).addResponse("c",
null),
+ "responses",
"{a={\"description\":\"a1\"},null={\"description\":\"b1\"},c=null}");
+
assertBean(t.setSecurityDefinitions(null).addSecurityDefinition("a",
securityScheme("a1")).addSecurityDefinition("b",
null).addSecurityDefinition(null, securityScheme("c1")),
+ "securityDefinitions",
"{a={\"type\":\"a1\"},b=null,null={\"type\":\"c1\"}}");
+ assertBean(t.setSecurity(null).addSecurity("a", "a1",
"a2").addSecurity("b", (String)null).addSecurity(null, "d1", "d2"),
+ "security", "[{a=[a1,a2]},{b=[null]},{null=[d1,d2]}]");
}
/**
* Test method for {@link Swagger#set(java.lang.String,
java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new Swagger();
t
@@ -103,9 +119,11 @@ class Swagger_Test extends SimpleTestBase {
.set("securityDefinitions",
map("m",securityScheme("m1")))
.set("swagger", "n")
.set("tags", set(tag("o")))
- .set("$ref", "ref");
+ .set("$ref", "p");
- assertJson(t,
"{swagger:'n',info:{title:'f1',version:'f2'},tags:[{name:'o'}],externalDocs:{url:'d'},basePath:'a',schemes:['k1'],consumes:['text/b'],produces:['text/i'],paths:{h:{h1:{operationId:'h2'}}},definitions:{c:{type:'c1'}},parameters:{g:{'in':'g1',name:'g2'}},responses:{j:{description:'j1'}},securityDefinitions:{m:{type:'m1'}},security:[{l1:['l2']}],'$ref':'ref'}");
+ assertBean(t,
+
"basePath,consumes,definitions{c{type}},externalDocs{url},host,info{title,version},parameters{g{in,name}},paths{h{h1{operationId}}},produces,$ref,responses{j{description}},schemes,security,securityDefinitions{m{type}},swagger,tags{#{name}}",
+
"a,[text/b],{{c1}},{d},e,{f1,f2},{{g1,g2}},{{{h2}}},[text/i],p,{{j1}},[k1],[{l1=[l2]}],{{m1}},n,{[{o}]}");
t
.set("basePath", "a")
@@ -125,66 +143,55 @@ class Swagger_Test extends SimpleTestBase {
.set("tags", "[{name:'o'}]")
.set("$ref", "ref");
- assertJson(t,
"{swagger:'n',info:{title:'f1',version:'f2'},tags:[{name:'o'}],externalDocs:{url:'d'},basePath:'a',schemes:['k1'],consumes:['text/b'],produces:['text/i'],paths:{h:{h1:{operationId:'h2'}}},definitions:{c:{type:'c1'}},parameters:{g:{'in':'g1',name:'g2'}},responses:{j:{description:'j1'}},securityDefinitions:{m:{type:'m1'}},security:[{l1:['l2']}],'$ref':'ref'}");
+ assertBean(t,
+
"swagger,info{title,version},tags{#{name}},externalDocs{url},basePath,schemes,consumes,produces,paths{h{h1{operationId}}},definitions{c{type}},parameters{g{in,name}},responses{j{description}},securityDefinitions{m{type}},security,$ref",
+
"n,{f1,f2},{[{o}]},{d},a,[k1],[text/b],[text/i],{{{h2}}},{{c1}},{{g1,g2}},{{j1}},{{m1}},[{l1=[l2]}],ref");
t
- .set("basePath", new StringBuilder("a"))
- .set("consumes", new StringBuilder("['text/b']"))
- .set("definitions", new
StringBuilder("{c:{type:'c1'}}"))
- .set("externalDocs", new StringBuilder("{url:'d'}"))
- .set("host", new StringBuilder("e"))
- .set("info", new
StringBuilder("{title:'f1',version:'f2'}"))
- .set("parameters", new
StringBuilder("{g:{'in':'g1',name:'g2'}}"))
- .set("paths", new
StringBuilder("{h:{h1:{operationId:'h2'}}}"))
- .set("produces", new StringBuilder("['text/i']"))
- .set("responses", new
StringBuilder("{j:{description:'j1'}}"))
- .set("schemes", new StringBuilder("['k1']"))
- .set("security", new StringBuilder("[{l1:['l2']}]"))
- .set("securityDefinitions", new
StringBuilder("{m:{type:'m1'}}"))
- .set("swagger", new StringBuilder("n"))
- .set("tags", new StringBuilder("[{name:'o'}]"))
- .set("$ref", new StringBuilder("ref"));
-
- assertJson(t,
"{swagger:'n',info:{title:'f1',version:'f2'},tags:[{name:'o'}],externalDocs:{url:'d'},basePath:'a',schemes:['k1'],consumes:['text/b'],produces:['text/i'],paths:{h:{h1:{operationId:'h2'}}},definitions:{c:{type:'c1'}},parameters:{g:{'in':'g1',name:'g2'}},responses:{j:{description:'j1'}},securityDefinitions:{m:{type:'m1'}},security:[{l1:['l2']}],'$ref':'ref'}");
-
- assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
-
"basePath,consumes,definitions,externalDocs,host,info,parameters,paths,produces,responses,schemes,security,securityDefinitions,swagger,tags,$ref",
+ .set("basePath", sb("a"))
+ .set("consumes", sb("['text/b']"))
+ .set("definitions", sb("{c:{type:'c1'}}"))
+ .set("externalDocs", sb("{url:'d'}"))
+ .set("host", sb("e"))
+ .set("info", sb("{title:'f1',version:'f2'}"))
+ .set("parameters", sb("{g:{'in':'g1',name:'g2'}}"))
+ .set("paths", sb("{h:{h1:{operationId:'h2'}}}"))
+ .set("produces", sb("['text/i']"))
+ .set("responses", sb("{j:{description:'j1'}}"))
+ .set("schemes", sb("['k1']"))
+ .set("security", sb("[{l1:['l2']}]"))
+ .set("securityDefinitions", sb("{m:{type:'m1'}}"))
+ .set("swagger", sb("n"))
+ .set("tags", sb("[{name:'o'}]"))
+ .set("$ref", sb("ref"));
+
+ assertBean(t,
+
"swagger,info{title,version},tags{#{name}},externalDocs{url},basePath,schemes,consumes,produces,paths{h{h1{operationId}}},definitions{c{type}},parameters{g{in,name}},responses{j{description}},securityDefinitions{m{type}},security,$ref",
+
"n,{f1,f2},{[{o}]},{d},a,[k1],[text/b],[text/i],{{{h2}}},{{c1}},{{g1,g2}},{{j1}},{{m1}},[{l1=[l2]}],ref");
+
+ assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
+
"basePath,consumes,definitions,externalDocs,host,info,parameters,paths,produces,responses,schemes,security,securityDefinitions,swagger,tags,$ref",
"a,['text/b'],{c:{type:'c1'}},{url:'d'},e,{title:'f1',version:'f2'},{g:{'in':'g1',name:'g2'}},{h:{h1:{operationId:'h2'}}},['text/i'],{j:{description:'j1'}},['k1'],[{l1:['l2']}],{m:{type:'m1'}},n,[{name:'o'}],ref");
- assertType(String.class, t.get("basePath", Object.class));
- assertType(Set.class, t.get("consumes", Object.class));
- assertType(MediaType.class, t.get("consumes",
List.class).get(0));
- assertType(Map.class, t.get("definitions", Object.class));
- assertType(JsonMap.class, t.get("definitions",
Map.class).values().iterator().next());
- assertType(ExternalDocumentation.class, t.get("externalDocs",
Object.class));
- assertType(String.class, t.get("host", Object.class));
- assertType(Info.class, t.get("info", Object.class));
- assertType(Map.class, t.get("parameters", Object.class));
- assertType(ParameterInfo.class, t.get("parameters",
Map.class).values().iterator().next());
- assertType(Map.class, t.get("paths", Object.class));
- assertType(Set.class, t.get("produces", Object.class));
- assertType(MediaType.class, t.get("consumes",
List.class).get(0));
- assertType(Map.class, t.get("responses", Object.class));
- assertType(ResponseInfo.class, t.get("responses",
Map.class).values().iterator().next());
- assertType(Set.class, t.get("schemes", Object.class));
- assertType(List.class, t.get("security", Object.class));
- assertType(Map.class, t.get("securityDefinitions",
Object.class));
- assertType(SecurityScheme.class, t.get("securityDefinitions",
Map.class).values().iterator().next());
- assertType(String.class, t.get("swagger", Object.class));
- assertType(Set.class, t.get("tags", Object.class));
- assertType(Tag.class, t.get("tags", List.class).get(0));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+
"basePath,consumes,definitions,externalDocs,host,info,parameters,paths,produces,responses,schemes,security,securityDefinitions,swagger,tags,$ref",
+
"String,LinkedHashSet,LinkedHashMap,ExternalDocumentation,String,Info,LinkedHashMap,TreeMap,LinkedHashSet,LinkedHashMap,LinkedHashSet,ArrayList,LinkedHashMap,String,LinkedHashSet,StringBuilder");
+
+ assertMapped(t, (o,k) -> o.get(k,
List.class).get(0).getClass().getSimpleName(), "consumes,tags",
"MediaType,Tag");
+ assertMapped(t, (o,k) -> o.get(k,
Map.class).values().iterator().next().getClass().getSimpleName(),
"definitions,parameters,responses,securityDefinitions",
"JsonMap,ParameterInfo,ResponseInfo,SecurityScheme");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{swagger:'n',info:{title:'f1',version:'f2'},tags:[{name:'o'}],externalDocs:{url:'d'},basePath:'a',schemes:['k1'],consumes:['text/b'],produces:['text/i'],paths:{h:{h1:{operationId:'h2'}}},definitions:{c:{type:'c1'}},parameters:{g:{'in':'g1',name:'g2'}},responses:{j:{description:'j1'}},securityDefinitions:{m:{type:'m1'}},security:[{l1:['l2']}],'$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, Swagger.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Swagger();
t = t.copy();
@@ -207,13 +214,15 @@ class Swagger_Test extends SimpleTestBase {
.set("securityDefinitions",
map("m",securityScheme("m1")))
.set("swagger", "n")
.set("tags", set(tag("o")))
- .set("$ref", "ref")
+ .set("$ref", "p")
.copy();
- assertJson(t,
"{swagger:'n',info:{title:'f1',version:'f2'},tags:[{name:'o'}],externalDocs:{url:'d'},basePath:'a',schemes:['k1'],consumes:['text/b'],produces:['text/i'],paths:{h:{h1:{operationId:'h2'}}},definitions:{c:{type:'c1'}},parameters:{g:{'in':'g1',name:'g2'}},responses:{j:{description:'j1'}},securityDefinitions:{m:{type:'m1'}},security:[{l1:['l2']}],'$ref':'ref'}");
+ assertBean(t,
+
"swagger,info{title,version},tags{#{name}},externalDocs{url},basePath,schemes,consumes,produces,paths{h{h1{operationId}}},definitions{c{type}},parameters{g{in,name}},responses{j{description}},securityDefinitions{m{type}},security,$ref",
+
"n,{f1,f2},{[{o}]},{d},a,[k1],[text/b],[text/i],{{{h2}}},{{c1}},{{g1,g2}},{{j1}},{{m1}},[{l1=[l2]}],p");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Swagger();
assertJson(t.keySet(), "['swagger']");
@@ -234,11 +243,8 @@ class Swagger_Test extends SimpleTestBase {
.set("securityDefinitions",
map("m",securityScheme("m1")))
.set("swagger", "n")
.set("tags", set(tag("o")))
- .set("$ref", "ref");
+ .set("$ref", "p");
- assertJson(t.keySet(),
-
"['basePath','consumes','definitions','externalDocs','host','info','parameters','paths','produces','responses',"
- +
"'schemes','security','securityDefinitions','swagger','tags','$ref']"
- );
+ assertSet(t.keySet(),
"basePath,consumes,definitions,externalDocs,host,info,parameters,paths,produces,responses,schemes,security,securityDefinitions,swagger,tags,$ref");
}
}
\ No newline at end of file
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Tag_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Tag_Test.java
index 17a1abd04..6cf07b1e5 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Tag_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Tag_Test.java
@@ -17,7 +17,6 @@ import static org.apache.juneau.bean.swagger.SwaggerBuilder.*;
import static org.junit.jupiter.api.Assertions.*;
import org.apache.juneau.*;
-import org.apache.juneau.bean.swagger.*;
import org.apache.juneau.bean.swagger.Tag;
import org.apache.juneau.json.*;
import org.junit.jupiter.api.*;
@@ -33,22 +32,25 @@ class Tag_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new Tag();
- // General
+ // Basic property setters
assertBean(
t.setName("a").setDescription("b").setExternalDocs(externalDocumentation("c")),
"name,description,externalDocs{url}",
"a,b,{c}"
);
- // Edge cases for nulls.
- assertNull(t.setName(null).getName());
- assertNull(t.setDescription(null).getDescription());
+ // Null values
+ assertBean(
+ t.setName(null).setDescription(null),
+ "name,description",
+ "null,null"
+ );
}
/**
* Test method for {@link Tag#set(java.lang.String, java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new Tag();
t
@@ -73,10 +75,10 @@ class Tag_Test extends SimpleTestBase {
"c,a,{b},ref");
t
- .set("description", new StringBuilder("a"))
- .set("externalDocs", new StringBuilder("{url:'b'}"))
- .set("name", new StringBuilder("c"))
- .set("$ref", new StringBuilder("ref"));
+ .set("description", sb("a"))
+ .set("externalDocs", sb("{url:'b'}"))
+ .set("name", sb("c"))
+ .set("$ref", sb("ref"));
assertBean(t,
"name,description,externalDocs{url},$ref",
@@ -86,21 +88,22 @@ class Tag_Test extends SimpleTestBase {
"description,externalDocs,name,$ref",
"a,{url:'b'},c,ref");
- assertType(String.class, t.get("description", Object.class));
- assertType(ExternalDocumentation.class, t.get("externalDocs",
Object.class));
- assertType(String.class, t.get("name", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+ "description,externalDocs,name,$ref",
+ "String,ExternalDocumentation,String,StringBuilder");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
+ @Test void b02_roundTripJson() {
var s =
"{name:'c',description:'a',externalDocs:{url:'b'},'$ref':'ref'}";
assertJson(JsonParser.DEFAULT.parse(s, Tag.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Tag();
t = t.copy();
@@ -119,7 +122,7 @@ class Tag_Test extends SimpleTestBase {
"c,a,{b},ref");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Tag();
assertEmpty(t.keySet());
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Xml_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Xml_Test.java
index 83ebea404..c6f88119e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Xml_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/Xml_Test.java
@@ -31,23 +31,25 @@ class Xml_Test extends SimpleTestBase {
@Test void a01_gettersAndSetters() {
var t = new Xml();
- // General
+ // Basic property setters
assertBean(
t.setName("a").setNamespace("b").setPrefix("c").setAttribute(true).setWrapped(true),
"name,namespace,prefix,attribute,wrapped",
"a,b,c,true,true"
);
- // Edge cases for nulls.
- assertNull(t.setName(null).getName());
- assertNull(t.setNamespace(null).getNamespace());
- assertNull(t.setPrefix(null).getPrefix());
+ // Null values
+ assertBean(
+ t.setName(null).setNamespace(null).setPrefix(null),
+ "name,namespace,prefix",
+ "null,null,null"
+ );
}
/**
* Test method for {@link Xml#set(java.lang.String, java.lang.Object)}.
*/
- @Test void b01_set() throws Exception {
+ @Test void b01_set() {
var t = new Xml();
t
@@ -56,12 +58,12 @@ class Xml_Test extends SimpleTestBase {
.set("namespace", "b")
.set("prefix", "c")
.set("wrapped", true)
- .set("$ref", "ref");
+ .set("$ref", "d");
// Comprehensive object state validation
assertBean(t,
"name,namespace,prefix,attribute,wrapped,$ref",
- "a,b,c,true,true,ref");
+ "a,b,c,true,true,d");
t
.set("attribute", "true")
@@ -69,45 +71,44 @@ class Xml_Test extends SimpleTestBase {
.set("namespace", "b")
.set("prefix", "c")
.set("wrapped", "true")
- .set("$ref", "ref");
+ .set("$ref", "d");
assertBean(t,
"name,namespace,prefix,attribute,wrapped,$ref",
- "a,b,c,true,true,ref");
+ "a,b,c,true,true,d");
t
- .set("attribute", new StringBuilder("true"))
- .set("name", new StringBuilder("a"))
- .set("namespace", new StringBuilder("b"))
- .set("prefix", new StringBuilder("c"))
- .set("wrapped", new StringBuilder("true"))
- .set("$ref", new StringBuilder("ref"));
+ .set("attribute", sb("true"))
+ .set("name", sb("a"))
+ .set("namespace", sb("b"))
+ .set("prefix", sb("c"))
+ .set("wrapped", sb("true"))
+ .set("$ref", sb("d"));
assertBean(t,
"name,namespace,prefix,attribute,wrapped,$ref",
- "a,b,c,true,true,ref");
+ "a,b,c,true,true,d");
assertMapped(t, (obj,prop) -> obj.get(prop, String.class),
"attribute,name,namespace,prefix,wrapped,$ref",
- "true,a,b,c,true,ref");
+ "true,a,b,c,true,d");
- assertType(Boolean.class, t.get("attribute", Object.class));
- assertType(String.class, t.get("name", Object.class));
- assertType(String.class, t.get("namespace", Object.class));
- assertType(String.class, t.get("prefix", Object.class));
- assertType(Boolean.class, t.get("wrapped", Object.class));
- assertType(StringBuilder.class, t.get("$ref", Object.class));
+ assertMapped(t, (obj,prop) -> obj.get(prop,
Object.class).getClass().getSimpleName(),
+ "attribute,name,namespace,prefix,wrapped,$ref",
+ "Boolean,String,String,String,Boolean,StringBuilder");
t.set("null", null).set(null, "null");
assertNull(t.get("null", Object.class));
assertNull(t.get(null, Object.class));
assertNull(t.get("foo", Object.class));
+ }
- var s =
"{name:'a',namespace:'b',prefix:'c',attribute:true,wrapped:true,'$ref':'ref'}";
+ @Test void b02_roundTripJson() {
+ var s =
"{name:'a',namespace:'b',prefix:'c',attribute:true,wrapped:true,'$ref':'d'}";
assertJson(JsonParser.DEFAULT.parse(s, Xml.class), s);
}
- @Test void b02_copy() {
+ @Test void b03_copy() {
var t = new Xml();
t = t.copy();
@@ -120,15 +121,15 @@ class Xml_Test extends SimpleTestBase {
.set("namespace", "b")
.set("prefix", "c")
.set("wrapped", true)
- .set("$ref", "ref")
+ .set("$ref", "d")
.copy();
assertBean(t,
"name,namespace,prefix,attribute,wrapped,$ref",
- "a,b,c,true,true,ref");
+ "a,b,c,true,true,d");
}
- @Test void b03_keySet() {
+ @Test void b04_keySet() {
var t = new Xml();
assertEmpty(t.keySet());
@@ -139,7 +140,7 @@ class Xml_Test extends SimpleTestBase {
.set("namespace", "b")
.set("prefix", "c")
.set("wrapped", true)
- .set("$ref", "ref");
+ .set("$ref", "d");
assertSet(t.keySet(),
"attribute,name,namespace,prefix,wrapped,$ref");
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/FormDataAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/FormDataAnnotation_Test.java
index 00d63612b..2f9487e69 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/FormDataAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/FormDataAnnotation_Test.java
@@ -52,18 +52,10 @@ class FormDataAnnotation_Test extends SimpleTestBase {
.build();
@Test void a01_basic() {
- assertJsonMatches(a1, ""
- + "{"
- + "def:'def',"
- + "description:['description'],"
- + "name:'name',"
- + "on:['on'],"
- +
"onClass:['org.apache.juneau.http.annotation.FormDataAnnotation_Test$X1'],"
- +
"parser:'org.apache.juneau.oapi.OpenApiParser',"
- + "schema:{*},"
- +
"serializer:'org.apache.juneau.oapi.OpenApiSerializer',"
- + "value:'value'"
- + "}"
+ assertBean(
+ a1,
+
"def,description,name,on,onClass{#{simpleName}},parser{simpleName},schema{description},serializer{simpleName},value",
+
"def,[description],name,[on],{[{X1}]},{OpenApiParser},{[]},{OpenApiSerializer},value"
);
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/HeaderAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/HeaderAnnotation_Test.java
index 752a251ca..55662831e 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/HeaderAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/HeaderAnnotation_Test.java
@@ -52,18 +52,10 @@ class HeaderAnnotation_Test extends SimpleTestBase {
.build();
@Test void a01_basic() {
- assertJsonMatches(a1, ""
- + "{"
- + "def:'def',"
- + "description:['description'],"
- + "name:'name',"
- + "on:['on'],"
- + "onClass:['"+CNAME+"$X1'],"
- +
"parser:'org.apache.juneau.oapi.OpenApiParser',"
- + "schema:{*},"
- +
"serializer:'org.apache.juneau.oapi.OpenApiSerializer',"
- + "value:'value'"
- + "}"
+ assertBean(
+ a1,
+
"def,description,name,on,onClass{#{simpleName}},parser{simpleName},serializer{simpleName},value",
+
"def,[description],name,[on],{[{X1}]},{OpenApiParser},{OpenApiSerializer},value"
);
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/PathAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/PathAnnotation_Test.java
index 43315bbf2..465218ede 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/PathAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/PathAnnotation_Test.java
@@ -52,18 +52,10 @@ class PathAnnotation_Test extends SimpleTestBase {
.build();
@Test void a01_basic() {
- assertJsonMatches(a1, ""
- + "{"
- + "def:'def',"
- + "description:['description'],"
- + "name:'name',"
- + "on:['on'],"
- + "onClass:['"+CNAME+"$X1'],"
- +
"parser:'org.apache.juneau.oapi.OpenApiParser',"
- + "schema:{*},"
- +
"serializer:'org.apache.juneau.oapi.OpenApiSerializer',"
- + "value:'value'"
- + "}"
+ assertBean(
+ a1,
+
"def,description,name,on,onClass{#{simpleName}},parser{simpleName},serializer{simpleName},value",
+
"def,[description],name,[on],{[{X1}]},{OpenApiParser},{OpenApiSerializer},value"
);
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/QueryAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/QueryAnnotation_Test.java
index 454e7e941..05e359efd 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/QueryAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/QueryAnnotation_Test.java
@@ -30,40 +30,32 @@ class QueryAnnotation_Test extends SimpleTestBase {
//------------------------------------------------------------------------------------------------------------------
Query a1 = QueryAnnotation.create()
- .def("def")
- .description("description")
- .name("name")
- .on("on")
+ .def("a")
+ .description("b")
+ .name("c")
+ .on("d")
.onClass(X1.class)
.parser(OpenApiParser.class)
.serializer(OpenApiSerializer.class)
- .value("value")
+ .value("e")
.build();
Query a2 = QueryAnnotation.create()
- .def("def")
- .description("description")
- .name("name")
- .on("on")
+ .def("a")
+ .description("b")
+ .name("c")
+ .on("d")
.onClass(X1.class)
.parser(OpenApiParser.class)
.serializer(OpenApiSerializer.class)
- .value("value")
+ .value("e")
.build();
@Test void a01_basic() {
- assertJsonMatches(a1, ""
- + "{"
- + "def:'def',"
- + "description:['description'],"
- + "name:'name',"
- + "on:['on'],"
- + "onClass:['"+CNAME+"$X1'],"
- +
"parser:'org.apache.juneau.oapi.OpenApiParser',"
- + "schema:{*},"
- +
"serializer:'org.apache.juneau.oapi.OpenApiSerializer',"
- + "value:'value'"
- + "}"
+ assertBean(
+ a1,
+
"def,description,name,on,onClass{#{simpleName}},parser{simpleName},serializer{simpleName},value",
+
"a,[b],c,[d],{[{X1}]},{OpenApiParser},{OpenApiSerializer},e"
);
}
@@ -113,27 +105,27 @@ class QueryAnnotation_Test extends SimpleTestBase {
//------------------------------------------------------------------------------------------------------------------
@Query(
- def="def",
- description={ "description" },
- name="name",
- on="on",
+ def="a",
+ description={ "b" },
+ name="c",
+ on="d",
onClass=X1.class,
parser=OpenApiParser.class,
serializer=OpenApiSerializer.class,
- value="value"
+ value="e"
)
public static class D1 {}
Query d1 = D1.class.getAnnotationsByType(Query.class)[0];
@Query(
- def="def",
- description={ "description" },
- name="name",
- on="on",
+ def="a",
+ description={ "b" },
+ name="c",
+ on="d",
onClass=X1.class,
parser=OpenApiParser.class,
serializer=OpenApiSerializer.class,
- value="value"
+ value="e"
)
public static class D2 {}
Query d2 = D2.class.getAnnotationsByType(Query.class)[0];
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/ResponseAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/ResponseAnnotation_Test.java
index 28d48e092..66ae3b893 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/http/annotation/ResponseAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/http/annotation/ResponseAnnotation_Test.java
@@ -53,17 +53,10 @@ class ResponseAnnotation_Test extends SimpleTestBase {
.build();
@Test void a01_basic() {
- assertJsonMatches(a1, ""
- + "{"
- + "description:['description'],"
- + "examples:['examples'],"
- + "headers:[*],"
- + "on:['on'],"
- + "onClass:['"+CNAME+"$X1'],"
- +
"parser:'org.apache.juneau.oapi.OpenApiParser',"
- + "schema:{*,"
- +
"serializer:'org.apache.juneau.oapi.OpenApiSerializer'"
- + "}"
+ assertBean(
+ a1,
+
"description,examples,on,onClass{#{simpleName}},parser{simpleName},serializer{simpleName}",
+
"[description],[examples],[on],{[{X1}]},{OpenApiParser},{OpenApiSerializer}"
);
}