You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/07/03 13:21:51 UTC
[juneau] branch master updated: Tests.
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 bc7817f Tests.
bc7817f is described below
commit bc7817fdd0e39a398ac7bd053e46bbbfd98d65b3
Author: JamesBognar <ja...@apache.org>
AuthorDate: Tue Jul 3 09:21:37 2018 -0400
Tests.
---
.../juneau/httppart/OpenApiPartParserTest.java | 47 +++++++++++++++++++---
.../org/apache/juneau/httppart/HttpPartSchema.java | 2 +-
.../apache/juneau/httppart/OpenApiPartParser.java | 25 +++++++++++-
.../org/apache/juneau/internal/StringUtils.java | 10 +++++
4 files changed, 77 insertions(+), 7 deletions(-)
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java
index dd9cb14..1b5078b 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java
@@ -462,11 +462,48 @@ public class OpenApiPartParserTest {
// type = boolean
//-----------------------------------------------------------------------------------------------------------------
-// case BOOLEAN: {
-// if (type.isObject())
-// type = (ClassMeta<T>)getClassMeta(Boolean.class);
-// return super.parse(partType, schema, in, type);
-//}
+ @Test
+ public void e01_booleanType() throws Exception {
+ HttpPartSchema s = HttpPartSchema.create().type("boolean").build();
+ assertEquals(true, p.parse(s, "true", boolean.class));
+ assertEquals(true, p.parse(s, "true", Boolean.class));
+ assertEquals(true, p.parse(s, "True", boolean.class));
+ assertEquals(true, p.parse(s, "TRUE", boolean.class));
+ assertEquals("true", p.parse(s, "true", String.class));
+ assertEquals(true, p.parse(s, "true", Object.class));
+ }
+
+ @Test
+ public void e02_booleanType_2d() throws Exception {
+ HttpPartSchema s = HttpPartSchema.create().type("array").items(HttpPartSchema.create().type("boolean")).build();
+ assertObjectEquals("[true,true]", p.parse(s, "true,true", boolean[].class));
+ assertObjectEquals("[true,true]", p.parse(s, "true,true", Boolean[].class));
+ assertObjectEquals("[true,true]", p.parse(s, "true,true", List.class, Boolean.class));
+ assertObjectEquals("[true,true]", p.parse(s, "True,true", boolean[].class));
+ assertObjectEquals("[true,true]", p.parse(s, "TRUE,true", boolean[].class));
+ assertObjectEquals("['true','true']", p.parse(s, "true,true", String[].class));
+ assertObjectEquals("['true','true']", p.parse(s, "true,true", List.class, String.class));
+ assertObjectEquals("[true,true]", p.parse(s, "true,true", Object[].class));
+ assertObjectEquals("[true,true]", p.parse(s, "true,true", List.class, Object.class));
+ }
+
+ @Test
+ public void e03_booleanType_3d() throws Exception {
+ HttpPartSchema s = HttpPartSchema.create().type("array").collectionFormat("pipes").items(HttpPartSchema.create().type("array").items(HttpPartSchema.create().type("boolean"))).build();
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", boolean[][].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", List.class, boolean[].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", Boolean[][].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", List.class, List.class, Boolean.class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", List.class, Boolean[].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "True,true|false", boolean[][].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "TRUE,true|false", boolean[][].class));
+ assertObjectEquals("[['true','true'],['false']]", p.parse(s, "true,true|false", String[][].class));
+ assertObjectEquals("[['true','true'],['false']]", p.parse(s, "true,true|false", List.class, List.class, String.class));
+ assertObjectEquals("[['true','true'],['false']]", p.parse(s, "true,true|false", List.class, String[].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", Object[][].class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", List.class, List.class, Object.class));
+ assertObjectEquals("[[true,true],[false]]", p.parse(s, "true,true|false", List.class, Object[].class));
+ }
//-----------------------------------------------------------------------------------------------------------------
// type = integer
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index 94dc878..28ed7b2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -288,7 +288,7 @@ public class HttpPartSchema {
break;
}
case BOOLEAN: {
- notAllowed.appendIf(_enum != null, "_enum");
+ notAllowed.appendIf(! _enum.isEmpty(), "_enum");
notAllowed.appendIf(properties != null, "properties");
notAllowed.appendIf(additionalProperties != null, "additionalProperties");
notAllowed.appendIf(exclusiveMaximum != null, "exclusiveMaximum");
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
index 8e9bab1..8577740 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
@@ -78,6 +78,29 @@ import org.apache.juneau.parser.*;
* </ul>
* </td>
* </tr>
+ * <tr>
+ * <td ><code>boolean</code></td>
+ * <td>
+ *
+ * </td>
+ * <td>
+ * <ul>
+ * <li><jk>boolean</code>
+ * <li>{@link Boolean}
+ * <li>{@link String}
+ * <li>{@link Object} - Returns a {@link Boolean}.
+ * </ul>
+ * </td>
+ * </tr>
+ * <tr>
+ * <td ><code>array</code></td>
+ * <td>
+ *
+ * </td>
+ * <td>
+ * Arrays or Collections of anything on this list.
+ * </td>
+ * </tr>
* </table>
*/
public class OpenApiPartParser extends UonPartParser {
@@ -291,7 +314,7 @@ public class OpenApiPartParser extends UonPartParser {
case BOOLEAN: {
if (type.isObject())
type = (ClassMeta<T>)getClassMeta(Boolean.class);
- return super.parse(partType, schema, in, type);
+ return super.parse(partType, schema, toLowerCase(in), type);
}
case INTEGER: {
if (type.isObject()) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
index 72816ff..0c157c3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
@@ -2388,4 +2388,14 @@ public final class StringUtils {
sb.append("\\E");
return Pattern.compile(sb.toString());
}
+
+ /**
+ * Null-safe {@link String#toLowerCase()}.
+ *
+ * @param s The string to convert to lower case.
+ * @return The string converted to lower case, or <jk>null</jk> if the string was null.
+ */
+ public static String toLowerCase(String s) {
+ return s == null ? null : s.toLowerCase();
+ }
}