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 1164c2a  Tests.
1164c2a is described below

commit 1164c2ab0dfafe320446149db6c8bd36d0d10657
Author: JamesBognar <jamesbog...@apache.org>
AuthorDate: Sat Jul 7 14:22:18 2018 -0400

    Tests.
---
 .../juneau/httppart/OpenApiPartSerializerTest.java | 355 ++++++++++-----------
 .../apache/juneau/httppart/OpenApiPartParser.java  |   4 +-
 .../juneau/httppart/OpenApiPartSerializer.java     |  33 +-
 3 files changed, 207 insertions(+), 185 deletions(-)

diff --git 
a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartSerializerTest.java
 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartSerializerTest.java
index bf3b72e..0179ea2 100644
--- 
a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartSerializerTest.java
+++ 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/OpenApiPartSerializerTest.java
@@ -545,9 +545,8 @@ public class OpenApiPartSerializerTest {
                assertEquals("true,true|false,null", s.serialize(ps, new 
Boolean[][]{{true,true},{false,null}}));
                assertEquals("true,true|false,null", s.serialize(ps, 
AList.create(new Boolean[]{true,true},new Boolean[]{false,null})));
                assertEquals("true,true|false,null", s.serialize(ps, 
AList.create(AList.create(true,true),AList.create(false,null))));
-               assertEquals("true,true|false,null", s.serialize(ps, new 
String[][]{{"true","true"},{"false",null}}));
-               assertEquals("true,true|false,null", s.serialize(ps, 
AList.create(AList.create("true","true"),AList.create("false",null))));
-               assertEquals("true,true|false,null", s.serialize(ps, 
AList.create(new String[]{"true","true"},new String[]{"false",null})));
+               assertEquals("true,true|false,null,null", s.serialize(ps, 
AList.create(AList.create("true","true"),AList.create("false","null",null))));
+               assertEquals("true,true|false,null,null", s.serialize(ps, 
AList.create(new String[]{"true","true"},new String[]{"false","null",null})));
                assertEquals("true,true|false,null", s.serialize(ps, new 
Object[][]{{true,true},{false,null}}));
                assertEquals("true,true|false,null", s.serialize(ps, 
AList.create(AList.create((Object)true,(Object)true),AList.create((Object)false,null))));
                assertEquals("true,true|false,null", s.serialize(ps, 
AList.create(new Object[]{true,true},new Object[]{false,null})));
@@ -629,8 +628,8 @@ public class OpenApiPartSerializerTest {
                assertEquals("1,2", s.serialize(ps, new long[]{1l,2l}));
                assertEquals("1,2,null", s.serialize(ps, new 
Long[]{1l,2l,null}));
                assertEquals("1,2,null", s.serialize(ps, 
AList.create(1l,2l,null)));
-               assertEquals("1,2,null", s.serialize(ps, new 
String[]{"1","2",null}));
-               assertEquals("1,2,null", s.serialize(ps, 
AList.create("1","2",null)));
+               assertEquals("1,2,null,null", s.serialize(ps, new 
String[]{"1","2","null",null}));
+               assertEquals("1,2,null,null", s.serialize(ps, 
AList.create("1","2","null",null)));
                assertEquals("1,2,null", s.serialize(ps, new 
Object[]{1,2,null}));
                assertEquals("1,2,null", s.serialize(ps, 
AList.<Object>create(1,2,null)));
                assertEquals("1,2,null,null", s.serialize(ps, new F1[]{new 
F1(1),new F1(2),new F1(null),null}));
@@ -656,9 +655,9 @@ public class OpenApiPartSerializerTest {
                assertEquals("1,2|3,null|null", s.serialize(ps, new 
Long[][]{{1l,2l},{3l,null},null}));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new Long[]{1l,2l},new Long[]{3l,null},null)));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(AList.create(new Long(1),new Long(2)),AList.create(new 
Long(3),null),null)));
-               assertEquals("1,2|3,null|null", s.serialize(ps, new 
String[][]{{"1","2"},{"3",null},null}));
-               assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new String[]{"1","2"},new String[]{"3",null},null)));
-               assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(AList.create("1","2"),AList.create("3",null),null)));
+               assertEquals("1,2|3,null,null|null", s.serialize(ps, new 
String[][]{{"1","2"},{"3","null",null},null}));
+               assertEquals("1,2|3,null,null|null", s.serialize(ps, 
AList.create(new String[]{"1","2"},new String[]{"3","null",null},null)));
+               assertEquals("1,2|3,null,null|null", s.serialize(ps, 
AList.create(AList.create("1","2"),AList.create("3","null",null),null)));
                assertEquals("1,2|3,null|null", s.serialize(ps, new 
Object[][]{{1,2},{3,null},null}));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new Object[]{1,2},new Object[]{3,null},null)));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(AList.<Object>create(1,2),AList.<Object>create(3,null),null)));
@@ -696,8 +695,8 @@ public class OpenApiPartSerializerTest {
                assertEquals("1,2", s.serialize(ps, new long[]{1l,2l}));
                assertEquals("1,2,null", s.serialize(ps, new 
Long[]{1l,2l,null}));
                assertEquals("1,2,null", s.serialize(ps, 
AList.create(1l,2l,null)));
-               assertEquals("1,2,null", s.serialize(ps, new 
String[]{"1","2",null}));
-               assertEquals("1,2,null", s.serialize(ps, 
AList.create("1","2",null)));
+               assertEquals("1,2,null,null", s.serialize(ps, new 
String[]{"1","2","null",null}));
+               assertEquals("1,2,null,null", s.serialize(ps, 
AList.create("1","2","null",null)));
                assertEquals("1,2,null", s.serialize(ps, new 
Object[]{1,2,null}));
                assertEquals("1,2,null", s.serialize(ps, 
AList.create((Object)1,(Object)2,null)));
                assertEquals("1,2,null,null", s.serialize(ps, new F3[]{new 
F3(1l),new F3(2l),new F3(null),null}));
@@ -723,9 +722,9 @@ public class OpenApiPartSerializerTest {
                assertEquals("1,2|3,null|null", s.serialize(ps, new 
Long[][]{{1l,2l},{3l,null},null}));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new Long[]{1l,2l},new Long[]{3l,null},null)));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(AList.create(1l,2l),AList.create(3l,null),null)));
-               assertEquals("1,2|3,null|null", s.serialize(ps, new 
String[][]{{"1","2"},{"3",null},null}));
-               assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new String[]{"1","2"},new String[]{"3",null},null)));
-               assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(AList.create("1","2"),AList.create("3",null),null)));
+               assertEquals("1,2|3,null,null|null", s.serialize(ps, new 
String[][]{{"1","2"},{"3","null",null},null}));
+               assertEquals("1,2|3,null,null|null", s.serialize(ps, 
AList.create(new String[]{"1","2"},new String[]{"3","null",null},null)));
+               assertEquals("1,2|3,null,null|null", s.serialize(ps, 
AList.create(AList.create("1","2"),AList.create("3","null",null),null)));
                assertEquals("1,2|3,null|null", s.serialize(ps, new 
Object[][]{{1,2},{3,null},null}));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new Object[]{1,2},new Object[]{3,null},null)));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(AList.create((Object)1,(Object)2),AList.create((Object)3,null),null)));
@@ -735,173 +734,169 @@ public class OpenApiPartSerializerTest {
                assertEquals("1,2|3,null|null", s.serialize(ps, new F4[]{new 
F4(1l,2l),new F4(3l,null),null}));
                assertEquals("1,2|3,null|null", s.serialize(ps, 
AList.create(new F4(1l,2l),new F4(3l,null),null)));
        }
-//
-//
-//     
//-----------------------------------------------------------------------------------------------------------------
-//     // type = number
-//     
//-----------------------------------------------------------------------------------------------------------------
-//
-//     public static class G1 {
-//             private String f;
-//             public G1(Float in) {
-//                     this.f = "G1-" + in.toString();
-//             }
-//             @Override
-//             public String toString() {
-//                     return f;
-//             }
-//     }
-//
-//     public static class G2 {
-//             private String f;
-//             public G2(Float[] in) {
-//                     this.f = "G2-" + 
JsonSerializer.DEFAULT_LAX.toString(in);
-//             }
-//             @Override
-//             public String toString() {
-//                     return f;
-//             }
-//     }
-//
-//     public static class G3 {
-//             private String f;
-//             public G3(Double in) {
-//                     this.f = "G3-" + in.toString();
-//             }
-//             @Override
-//             public String toString() {
-//                     return f;
-//             }
-//     }
-//
-//     public static class G4 {
-//             private String f;
-//             public G4(Double[] in) {
-//                     this.f = "G4-" + 
JsonSerializer.DEFAULT_LAX.toString(in);
-//             }
-//             @Override
-//             public String toString() {
-//                     return f;
-//             }
-//     }
-//
-//     @Test
-//     public void g01_numberType_float() throws Exception {
-//             HttpPartSchema ps = schema("number", "float").build();
-//             assertEquals("1.0", s.serialize(ps, "1", float.class));
-//             assertEquals("1.0", s.serialize(ps, "1", Float.class));
-//             assertEquals("1.0", s.serialize(ps, "1", double.class));
-//             assertEquals("1.0", s.serialize(ps, "1", Double.class));
-//             assertEquals("'1'", s.serialize(ps, "1", String.class));
-//             Object o =  s.serialize(ps, "1", Object.class);
-//             assertEquals("1.0",o);
-//             assertClass(Float.class, o);
-//             assertEquals("'G1-1.0'", s.serialize(ps,  "1", G1.class));
-//     }
-//
-//     @Test
-//     public void g02_numberType_float_2d() throws Exception {
-//             HttpPartSchema ps = schema("array").items(schema("number", 
"float")).build();
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
float[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
Float[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", List.class, 
Float.class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
double[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
Double[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", List.class, 
Double.class));
-//             assertEquals("['1','2']", s.serialize(ps, "1,2", 
String[].class));
-//             assertEquals("['1','2']", s.serialize(ps, "1,2", List.class, 
String.class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
Object[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", List.class, 
Object.class));
-//             assertEquals("['G1-1.0','G1-2.0']", s.serialize(ps,  "1,2", 
G1[].class));
-//             assertEquals("['G1-1.0','G1-2.0']", s.serialize(ps,  "1,2", 
List.class, G1.class));
-//             assertEquals("'G2-[1.0,2.0]'", s.serialize(ps,  "1,2", 
G2.class));
-//     }
-//
-//     @Test
-//     public void g03_numberType_float_3d() throws Exception {
-//             HttpPartSchema ps = 
schema("array").collectionFormat("pipes").items(schema("array").items(schema("number",
 "float"))).build();
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
float[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, float[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
Float[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, Float[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, List.class, Float.class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
double[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, double[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
Double[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, Double[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, List.class, Double.class));
-//             assertEquals("[['1','2'],['3']]", s.serialize(ps, "1,2|3", 
String[][].class));
-//             assertEquals("[['1','2'],['3']]", s.serialize(ps, "1,2|3", 
List.class, String[].class));
-//             assertEquals("[['1','2'],['3']]", s.serialize(ps, "1,2|3", 
List.class, List.class, String.class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
Object[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, Object[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, List.class, Object.class));
-//             assertEquals("[['G1-1.0','G1-2.0'],['G1-3.0']]", 
s.serialize(ps,  "1,2|3", G1[][].class));
-//             assertEquals("[['G1-1.0','G1-2.0'],['G1-3.0']]", 
s.serialize(ps,  "1,2|3", List.class, G1[].class));
-//             assertEquals("[['G1-1.0','G1-2.0'],['G1-3.0']]", 
s.serialize(ps,  "1,2|3", List.class, List.class, G1.class));
-//             assertEquals("['G2-[1.0,2.0]','G2-[3.0]']", s.serialize(ps, 
"1,2|3", G2[].class));
-//             assertEquals("['G2-[1.0,2.0]','G2-[3.0]']", s.serialize(ps, 
"1,2|3", List.class, G2.class));
-//     }
-//
-//     @Test
-//     public void g04_numberType_double() throws Exception {
-//             HttpPartSchema ps = schema("number", "double").build();
-//             assertEquals("1.0", s.serialize(ps, "1", float.class));
-//             assertEquals("1.0", s.serialize(ps, "1", Float.class));
-//             assertEquals("1.0", s.serialize(ps, "1", double.class));
-//             assertEquals("1.0", s.serialize(ps, "1", Double.class));
-//             assertEquals("'1'", s.serialize(ps, "1", String.class));
-//             Object o = s.serialize(ps, "1", Object.class);
-//             assertEquals("1.0", o);
-//             assertClass(Double.class, o);
-//             assertEquals("'G3-1.0'", s.serialize(ps,  "1", G3.class));
-//     }
-//
-//     @Test
-//     public void g05_numberType_double_2d() throws Exception {
-//             HttpPartSchema ps = schema("array").items(schema("number", 
"double")).build();
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
float[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
Float[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", List.class, 
Float.class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
double[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
Double[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", List.class, 
Double.class));
-//             assertEquals("['1','2']", s.serialize(ps, "1,2", 
String[].class));
-//             assertEquals("['1','2']", s.serialize(ps, "1,2", List.class, 
String.class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", 
Object[].class));
-//             assertEquals("[1.0,2.0]", s.serialize(ps, "1,2", List.class, 
Object.class));
-//             assertEquals("['G3-1.0','G3-2.0']", s.serialize(ps,  "1,2", 
G3[].class));
-//             assertEquals("['G3-1.0','G3-2.0']", s.serialize(ps,  "1,2", 
List.class, G3.class));
-//             assertEquals("'G4-[1.0,2.0]'", s.serialize(ps,  "1,2", 
G4.class));
-//     }
-//
-//     @Test
-//     public void g06_numberType_double_3d() throws Exception {
-//             HttpPartSchema ps = 
schema("array").collectionFormat("pipes").items(schema("array").items(schema("number",
 "double"))).build();
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
float[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, float[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
Float[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, Float[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, List.class, Float.class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
double[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, double[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
Double[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, Double[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, List.class, Double.class));
-//             assertEquals("[['1','2'],['3']]", s.serialize(ps, "1,2|3", 
String[][].class));
-//             assertEquals("[['1','2'],['3']]", s.serialize(ps, "1,2|3", 
List.class, String[].class));
-//             assertEquals("[['1','2'],['3']]", s.serialize(ps, "1,2|3", 
List.class, List.class, String.class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
Object[][].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, Object[].class));
-//             assertEquals("[[1.0,2.0],[3.0]]", s.serialize(ps, "1,2|3", 
List.class, List.class, Object.class));
-//             assertEquals("[['G3-1.0','G3-2.0'],['G3-3.0']]", 
s.serialize(ps,  "1,2|3", G3[][].class));
-//             assertEquals("[['G3-1.0','G3-2.0'],['G3-3.0']]", 
s.serialize(ps,  "1,2|3", List.class, G3[].class));
-//             assertEquals("[['G3-1.0','G3-2.0'],['G3-3.0']]", 
s.serialize(ps,  "1,2|3", List.class, List.class, G3.class));
-//             assertEquals("['G4-[1.0,2.0]','G4-[3.0]']", s.serialize(ps, 
"1,2|3", G4[].class));
-//             assertEquals("['G4-[1.0,2.0]','G4-[3.0]']", s.serialize(ps, 
"1,2|3", List.class, G4.class));
-//     }
-//
-//
+
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // type = number
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       public static class G1 {
+               private Float f;
+               public G1(Float in) {
+                       this.f = in;
+               }
+               public Float toFloat() {
+                       return f;
+               }
+       }
+
+       public static class G2 {
+               private Float[] f;
+               public G2(Float...in) {
+                       this.f = in;
+               }
+               public Float[] toFloatArray() {
+                       return f;
+               }
+       }
+
+       public static class G3 {
+               private Double f;
+               public G3(Double in) {
+                       this.f = in;
+               }
+               public Double toDouble() {
+                       return f;
+               }
+       }
+
+       public static class G4 {
+               private Double[] f;
+               public G4(Double...in) {
+                       this.f = in;
+               }
+               public Double[] toDoubleArray() {
+                       return f;
+               }
+       }
+
+       @Test
+       public void g01_numberType_float() throws Exception {
+               HttpPartSchema ps = schema("number", "float").build();
+               assertEquals("1.0", s.serialize(ps, 1f));
+               assertEquals("1.0", s.serialize(ps, new Float(1f)));
+               assertEquals("1.0", s.serialize(ps, 1d));
+               assertEquals("1.0", s.serialize(ps, new Double(1d)));
+               assertEquals("1.0", s.serialize(ps, "1"));
+               assertEquals("1.0", s.serialize(ps, new G1(1f)));
+               assertEquals("null", s.serialize(ps, null));
+               assertEquals("null", s.serialize(ps, "null"));
+               assertEquals("null", s.serialize(ps, new G1(null)));
+       }
+
+       @Test
+       public void g02_numberType_float_2d() throws Exception {
+               HttpPartSchema ps = schema("array").items(schema("number", 
"float")).build();
+               assertEquals("1.0,2.0", s.serialize(ps, new float[]{1,2}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
Float[]{1f,2f,null}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, 
AList.create(1f,2f,null)));
+               assertEquals("1.0,2.0", s.serialize(ps, new double[]{1,2}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
Double[]{1d,2d,null}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, 
AList.create(1d,2d,null)));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, new 
String[]{"1","2","null",null}));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, 
AList.create("1","2","null",null)));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
Object[]{1,2,null}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, 
AList.create((Object)1,(Object)2,null)));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, new G1[]{new 
G1(1f),new G1(2f),new G1(null),null}));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, 
AList.create(new G1(1f),new G1(2f),new G1(null),null)));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
G2(1f,2f,null)));
+       }
+
+       @Test
+       public void g03_numberType_float_3d() throws Exception {
+               HttpPartSchema ps = 
schema("array").collectionFormat("pipes").items(schema("array").items(schema("number",
 "float"))).build();
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, new 
float[][]{{1,2},{3},null}));
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, 
AList.create(new float[]{1,2},new float[]{3},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, new 
Float[][]{{1f,2f},{3f,null},null}));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(new Float[]{1f,2f},new Float[]{3f,null}, null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(AList.create(1f,2f),AList.create(3f,null),null)));
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, new 
double[][]{{1d,2d},{3d},null}));
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, 
AList.create(new double[]{1d,2d},new double[]{3d},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, new 
Double[][]{{1d,2d},{3d,null},null}));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(new Double[]{1d,2d},new Double[]{3d,null},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(AList.create(1d,2d),AList.create(3d,null),null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, new 
String[][]{{"1","2"},{"3","null",null},null}));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(new String[]{"1","2"},new String[]{"3","null",null},null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(AList.create(1d,2d),AList.create(3f,"null",null),null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, new 
Object[][]{{1d,2d},{3f,"null",null},null}));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(new Object[]{1d,2d},new Object[]{3f,"null",null},null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(AList.create(1d,2d),AList.create(3f,"null",null),null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, new 
G1[][]{{new G1(1f),new G1(2f)},{new G1(3f),new G1(null),null},null}));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(new G1[]{new G1(1f),new G1(2f)},new G1[]{new G1(3f),new 
G1(null),null},null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(AList.create(new G1(1f),new G1(2f)),AList.create(new G1(3f),new 
G1(null),null),null)));
+               assertEquals("1.0,2.0,null|null", s.serialize(ps, new G2[]{new 
G2(1f,2f,null),null}));
+               assertEquals("1.0,2.0,null|null", s.serialize(ps, 
AList.create(new G2(1f,2f,null),null)));
+       }
+
+       @Test
+       public void g04_numberType_double() throws Exception {
+               HttpPartSchema ps = schema("number", "double").build();
+               assertEquals("1.0", s.serialize(ps, 1f));
+               assertEquals("1.0", s.serialize(ps, new Float(1f)));
+               assertEquals("1.0", s.serialize(ps, 1d));
+               assertEquals("1.0", s.serialize(ps, new Double(1d)));
+               assertEquals("1.0", s.serialize(ps, "1"));
+               assertEquals("1.0", s.serialize(ps, new G3(1d)));
+               assertEquals("null", s.serialize(ps, null));
+               assertEquals("null", s.serialize(ps, "null"));
+               assertEquals("null", s.serialize(ps, new G3(null)));
+       }
+
+       @Test
+       public void g05_numberType_double_2d() throws Exception {
+               HttpPartSchema ps = schema("array").items(schema("number", 
"double")).build();
+               assertEquals("1.0,2.0", s.serialize(ps, new float[]{1,2}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
Float[]{1f,2f,null}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, 
AList.create(1f,2f,null)));
+               assertEquals("1.0,2.0", s.serialize(ps, new double[]{1,2}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
Double[]{1d,2d,null}));
+               assertEquals("1.0,2.0,null", s.serialize(ps, 
AList.create(1d,2d,null)));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, new 
String[]{"1","2","null",null}));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, 
AList.create("1","2","null",null)));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, new 
Object[]{1d,2f,"null",null}));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, 
AList.create(1d,2f,"null",null)));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, new G3[]{new 
G3(1d),new G3(2d),new G3(null),null}));
+               assertEquals("1.0,2.0,null,null", s.serialize(ps, 
AList.create(new G3(1d),new G3(2d),new G3(null),null)));
+               assertEquals("1.0,2.0,null", s.serialize(ps, new 
G4(1d,2d,null)));
+       }
+
+       @Test
+       public void g06_numberType_double_3d() throws Exception {
+               HttpPartSchema ps = 
schema("array").collectionFormat("pipes").items(schema("array").items(schema("number",
 "double"))).build();
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, new 
float[][]{{1f,2f},{3f},null}));
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, 
AList.create(new float[]{1f,2f},new float[]{3f},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, new 
Float[][]{{1f,2f},{3f,null},null}));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(new Float[]{1f,2f},new Float[]{3f,null},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(AList.create(1f,2f),AList.create(3f,null),null)));
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, new 
double[][]{{1d,2d},{3d},null}));
+               assertEquals("1.0,2.0|3.0|null", s.serialize(ps, 
AList.create(new double[]{1d,2d},new double[]{3d},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, new 
Double[][]{{1d,2d},{3d,null},null}));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(new Double[]{1d,2d},new Double[]{3d,null},null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(AList.create(1d,2d),AList.create(3d,null),null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, new 
String[][]{{"1","2"},{"3","null",null},null}));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(new String[]{"1","2"},new String[]{"3","null",null},null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(AList.create("1","2"),AList.create("3","null",null),null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, new 
Object[][]{{1d,2d},{"3","null",null},null}));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(new Object[]{1d,2d},new Object[]{"3","null",null},null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(AList.create(1d,2f),AList.create(3d,"null",null),null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, new 
G3[][]{{new G3(1d),new G3(2d)},{new G3(3d),new G3(null),null},null}));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(new G3[]{new G3(1d),new G3(2d)},new G3[]{new G3(3d),new 
G3(null),null},null)));
+               assertEquals("1.0,2.0|3.0,null,null|null", s.serialize(ps, 
AList.create(AList.create(new G3(1d),new G3(2d)),AList.create(new G3(3d),new 
G3(null),null),null)));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, new 
G4[]{new G4(1d,2d),new G4(3d,null),null}));
+               assertEquals("1.0,2.0|3.0,null|null", s.serialize(ps, 
AList.create(new G4(1d,2d),new G4(3d,null),null)));
+       }
+
+
 //     
//-----------------------------------------------------------------------------------------------------------------
 //     // type = object
 //     
//-----------------------------------------------------------------------------------------------------------------
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 e6507ce..1ca2ee3 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
@@ -179,6 +179,7 @@ public class OpenApiPartParser extends UonPartParser {
        
//-------------------------------------------------------------------------------------------------------------------
 
        final HttpPartSchema schema;
+       final BeanSession bs;
 
        /**
         * Constructor.
@@ -189,6 +190,7 @@ public class OpenApiPartParser extends UonPartParser {
                super(
                        ps.builder().build()
                );
+               this.bs = createBeanSession();
                this.schema = getProperty(OAPI_schema, HttpPartSchema.class, 
DEFAULT_SCHEMA);
        }
 
@@ -406,7 +408,7 @@ public class OpenApiPartParser extends UonPartParser {
 
        private <T> T toType(Object in, ClassMeta<T> type) throws 
ParseException {
                try {
-                       return createBeanSession().convertToType(in, type);
+                       return bs.convertToType(in, type);
                } catch (InvalidDataConversionException e) {
                        throw new ParseException(e.getMessage());
                }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartSerializer.java
index 8913af3..bc14088 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartSerializer.java
@@ -72,6 +72,11 @@ public class OpenApiPartSerializer extends UonPartSerializer 
{
        private static final BeanContext BC = BeanContext.DEFAULT;
        private static final ClassMeta<byte[]> CM_ByteArray = 
BC.getClassMeta(byte[].class);
        private static final ClassMeta<Calendar> CM_Calendar = 
BC.getClassMeta(Calendar.class);
+       private static final ClassMeta<Long> CM_Long = 
BC.getClassMeta(Long.class);
+       private static final ClassMeta<Integer> CM_Integer = 
BC.getClassMeta(Integer.class);
+       private static final ClassMeta<Double> CM_Double = 
BC.getClassMeta(Double.class);
+       private static final ClassMeta<Float> CM_Float = 
BC.getClassMeta(Float.class);
+       private static final ClassMeta<Boolean> CM_Boolean = 
BC.getClassMeta(Boolean.class);
 
        private static final HttpPartSchema DEFAULT_SCHEMA = 
HttpPartSchema.DEFAULT;
 
@@ -80,6 +85,7 @@ public class OpenApiPartSerializer extends UonPartSerializer {
        
//-------------------------------------------------------------------------------------------------------------------
 
        final HttpPartSchema schema;
+       final BeanSession bs;
 
        /**
         * Constructor.
@@ -93,6 +99,7 @@ public class OpenApiPartSerializer extends UonPartSerializer {
                                .set(UON_encoding, false)
                                .build()
                );
+               this.bs = createBeanSession();
                this.schema = getProperty(OAPI_schema, HttpPartSchema.class, 
HttpPartSchema.DEFAULT);
        }
 
@@ -204,12 +211,30 @@ public class OpenApiPartSerializer extends 
UonPartSerializer {
                                                out = joine(l, ',');
                                }
 
-                       } else if (t == BOOLEAN || t == INTEGER || t == NUMBER) 
{
+                       } else if (t == BOOLEAN) {
 
-                               if (cf == HttpPartSchema.CollectionFormat.UON)
+                               if (f == HttpPartSchema.Format.UON)
+                                       out = super.serialize(partType, null, 
value);
+                               else
+                                       out = asString(toType(value, 
CM_Boolean));
+
+                       } else if (t == INTEGER) {
+
+                               if (f == HttpPartSchema.Format.UON)
+                                       out = super.serialize(partType, null, 
value);
+                               else if (f == INT64)
+                                       out = asString(toType(value, CM_Long));
+                               else
+                                       out = asString(toType(value, 
CM_Integer));
+
+                       } else if (t == NUMBER) {
+
+                               if (f == HttpPartSchema.Format.UON)
                                        out = super.serialize(partType, null, 
value);
+                               else if (f == DOUBLE)
+                                       out = asString(toType(value, 
CM_Double));
                                else
-                                       out = value.toString();
+                                       out = asString(toType(value, CM_Float));
 
                        } else if (t == OBJECT) {
 
@@ -248,7 +273,7 @@ public class OpenApiPartSerializer extends 
UonPartSerializer {
 
        private <T> T toType(Object in, ClassMeta<T> type) throws 
SerializeException {
                try {
-                       return createBeanSession().convertToType(in, type);
+                       return bs.convertToType(in, type);
                } catch (InvalidDataConversionException e) {
                        throw new SerializeException(e.getMessage());
                }

Reply via email to