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 <[email protected]>
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>
+ *                     &nbsp;
+ *             </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>
+ *                     &nbsp;
+ *             </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();
+       }
 }

Reply via email to