Repository: incubator-juneau Updated Branches: refs/heads/master 62641ca77 -> 3e79baeb0
Proxy interface tests. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/3e79baeb Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/3e79baeb Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/3e79baeb Branch: refs/heads/master Commit: 3e79baeb0587b61686bd95d49c4321ba93b988c5 Parents: 62641ca Author: JamesBognar <[email protected]> Authored: Tue Mar 28 17:04:41 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Tue Mar 28 17:04:41 2017 -0400 ---------------------------------------------------------------------- .../apache/juneau/rest/test/InterfaceProxy.java | 15 ++- .../rest/test/InterfaceProxyResource.java | 125 ++++++++++++++++-- .../juneau/rest/test/InterfaceProxyTest.java | 128 ++++++++++++++++--- 3 files changed, 239 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3e79baeb/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java ---------------------------------------------------------------------- diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java index ccafb08..787efe3 100644 --- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java +++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java @@ -103,7 +103,6 @@ public interface InterfaceProxy { void setInteger3dArray(Integer[][][] x); void setString3dArray(String[][][] x); void setIntegerList(List<Integer> x); - void setInteger2dList(List<List<Integer>> x); void setInteger3dList(List<List<List<Integer>>> x); void setInteger1d3dList(List<Integer[][][]> x); void setInt1d3dList(List<int[][][]> x); @@ -142,6 +141,20 @@ public interface InterfaceProxy { void setEnum1d3dListMap(Map<TestEnum,List<TestEnum[][][]>> x); //-------------------------------------------------------------------------------- + // Test multi-parameters + //-------------------------------------------------------------------------------- + + void setMultiParamsInts(int x1, int[][][] x2, int[][][] x2n, List<int[][][]> x3, List<int[][][]> x3n); + void setMultiParamsInteger(Integer x1, Integer x1n, Integer[][][] x2, Integer[][][] x2n, List<Integer[][][]> x3, List<Integer[][][]> x3n); + void setMultiParamsFloat(float x1, float[][][] x2, float[][][] x2n, List<float[][][]> x3, List<float[][][]> x3n); + void setMultiParamsFloatObject(Float x1, Float x1n, Float[][][] x2, Float[][][] x2n, List<Float[][][]> x3, List<Float[][][]> x3n); + void setMultiParamsString(String x1, String[][][] x2, String[][][] x2n, List<String[][][]> x3, List<String[][][]> x3n); + void setMultiParamsBean(Bean x1, Bean[][][] x2, Bean[][][] x2n, List<Bean[][][]> x3, List<Bean[][][]> x3n, Map<String,Bean> x4, Map<String,Bean> x4n, Map<String,List<Bean[][][]>> x5, Map<String,List<Bean[][][]>> x5n); + void setMultiParamsSwappedPojo(SwappedPojo x1, SwappedPojo[][][] x2, SwappedPojo[][][] x2n, List<SwappedPojo[][][]> x3, List<SwappedPojo[][][]> x3n, Map<SwappedPojo,SwappedPojo> x4, Map<SwappedPojo,SwappedPojo> x4n, Map<SwappedPojo,List<SwappedPojo[][][]>> x5, Map<SwappedPojo,List<SwappedPojo[][][]>> x5n); + void setMultiParamsImplicitSwappedPojo(ImplicitSwappedPojo x1, ImplicitSwappedPojo[][][] x2, ImplicitSwappedPojo[][][] x2n, List<ImplicitSwappedPojo[][][]> x3, List<ImplicitSwappedPojo[][][]> x3n, Map<ImplicitSwappedPojo,ImplicitSwappedPojo> x4, Map<ImplicitSwappedPojo,ImplicitSwappedPojo> x4n, Map<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>> x5, Map<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>> x5n); + void setMultiParamsEnum(TestEnum x1, TestEnum[][][] x2, TestEnum[][][] x2n, List<TestEnum[][][]> x3, List<TestEnum[][][]> x3n, Map<TestEnum,TestEnum> x4, Map<TestEnum,TestEnum> x4n, Map<TestEnum,List<TestEnum[][][]>> x5, Map<TestEnum,List<TestEnum[][][]>> x5n); + + //-------------------------------------------------------------------------------- // Helper classes //-------------------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3e79baeb/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java ---------------------------------------------------------------------- diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java index 28e9ca5..18fa8e9 100644 --- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java +++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java @@ -76,15 +76,15 @@ public class InterfaceProxyResource extends RestServletJenaDefault { } @Override public int[][][] returnInt3dArray() { - return new int[][][]{{{1,2}}}; + return new int[][][]{{{1,2},null},null}; } @Override public Integer[][][] returnInteger3dArray() { - return new Integer[][][]{{{1,null}}}; + return new Integer[][][]{{{1,null},null},null}; } @Override public String[][][] returnString3dArray() { - return new String[][][]{{{"foo","bar",null}}}; + return new String[][][]{{{"foo","bar",null},null},null}; } @Override public List<Integer> returnIntegerList() { @@ -98,7 +98,9 @@ public class InterfaceProxyResource extends RestServletJenaDefault { .append( new AList<Integer>().append(1).append(null) ) - ); + .append(null) + ) + .append(null); } @Override public List<Integer[][][]> returnInteger1d3dList() { @@ -276,15 +278,15 @@ public class InterfaceProxyResource extends RestServletJenaDefault { } @Override public void setInt3dArray(int[][][] x) { - assertObjectEquals("[[[1,2]]]", x); + assertObjectEquals("[[[1,2],null],null]", x); } @Override public void setInteger3dArray(Integer[][][] x) { - assertObjectEquals("[[[1,null]]]", x); + assertObjectEquals("[[[1,null],null],null]", x); } @Override public void setString3dArray(String[][][] x) { - assertObjectEquals("[[['foo','bar',null]]]", x); + assertObjectEquals("[[['foo',null],null],null]", x); } @Override public void setIntegerList(List<Integer> x) { @@ -292,13 +294,8 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertEquals(Integer.class, x.get(0).getClass()); } @Override - public void setInteger2dList(List<List<Integer>> x) { - assertObjectEquals("[[1,null]]", x); - assertEquals(Integer.class, x.get(0).get(0).getClass()); - } - @Override public void setInteger3dList(List<List<List<Integer>>> x) { - assertObjectEquals("[[[1,null]]]", x); + assertObjectEquals("[[[1,null],null],null]", x); assertEquals(Integer.class, x.get(0).get(0).get(0).getClass()); } @Override @@ -447,6 +444,108 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertEquals(TestEnum.class, e.getKey().getClass()); assertEquals(TestEnum[][][].class, e.getValue().get(0).getClass()); } + + //-------------------------------------------------------------------------------- + // Test multi-parameters + //-------------------------------------------------------------------------------- + + @Override + public void setMultiParamsInts(int x1, int[][][] x2, int[][][] x2n, List<int[][][]> x3, List<int[][][]> x3n) { + assertObjectEquals("1", x1); + assertObjectEquals("[[[1,2],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[[1,2],null],null],null]", x3); + assertEquals(int[][][].class, x3.get(0).getClass()); + assertNull(x3n); + } + @Override + public void setMultiParamsInteger(Integer x1, Integer x1n, Integer[][][] x2, Integer[][][] x2n, List<Integer[][][]> x3, List<Integer[][][]> x3n) { + assertObjectEquals("1", x1); + assertObjectEquals("[[[1,null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[[1,null],null],null],null]", x3); + assertEquals(Integer[][][].class, x3.get(0).getClass()); + assertNull(x3n); + } + @Override + public void setMultiParamsFloat(float x1, float[][][] x2, float[][][] x2n, List<float[][][]> x3, List<float[][][]> x3n) { + assertObjectEquals("1.0", x1); + assertObjectEquals("[[[1.0,2.0],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[[1.0,2.0],null],null],null]", x3); + assertEquals(float[][][].class, x3.get(0).getClass()); + assertNull(x3n); + } + @Override + public void setMultiParamsFloatObject(Float x1, Float x1n, Float[][][] x2, Float[][][] x2n, List<Float[][][]> x3, List<Float[][][]> x3n) { + assertObjectEquals("1.0", x1); + assertObjectEquals("[[[1.0,null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[[1.0,null],null],null],null]", x3); + assertEquals(Float[][][].class, x3.get(0).getClass()); + assertNull(x3n); + } + @Override + public void setMultiParamsString(String x1, String[][][] x2, String[][][] x2n, List<String[][][]> x3, List<String[][][]> x3n) { + assertObjectEquals("'foo'", x1); + assertObjectEquals("[[['foo',null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[['foo',null],null],null],null]", x3); + assertEquals(String[][][].class, x3.get(0).getClass()); + assertNull(x3n); + } + @Override + public void setMultiParamsBean(Bean x1, Bean[][][] x2, Bean[][][] x2n, List<Bean[][][]> x3, List<Bean[][][]> x3n, Map<String,Bean> x4, Map<String,Bean> x4n, Map<String,List<Bean[][][]>> x5, Map<String,List<Bean[][][]>> x5n) { + assertObjectEquals("{a:1,b:'foo'}", x1); + assertObjectEquals("[[[{a:1,b:'foo'},null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[[{a:1,b:'foo'},null],null],null],null]", x3); + assertEquals(Bean[][][].class, x3.get(0).getClass()); + assertNull(x3n); + assertObjectEquals("{foo:{a:1,b:'foo'}}", x4); + assertNull(x4n); + assertObjectEquals("{foo:[[[[{a:1,b:'foo'},null],null],null],null]}", x5); + assertNull(x5n); + } + @Override + public void setMultiParamsSwappedPojo(SwappedPojo x1, SwappedPojo[][][] x2, SwappedPojo[][][] x2n, List<SwappedPojo[][][]> x3, List<SwappedPojo[][][]> x3n, Map<SwappedPojo,SwappedPojo> x4, Map<SwappedPojo,SwappedPojo> x4n, Map<SwappedPojo,List<SwappedPojo[][][]>> x5, Map<SwappedPojo,List<SwappedPojo[][][]>> x5n) { + assertObjectEquals("'[{(<swapped>)}]'", x1); + assertObjectEquals("[[['[{(<swapped>)}]',null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[['[{(<swapped>)}]',null],null],null],null]", x3); + assertEquals(SwappedPojo[][][].class, x3.get(0).getClass()); + assertNull(x3n); + assertObjectEquals("{'[{(<swapped>)}]':'[{(<swapped>)}]'}", x4); + assertNull(x4n); + assertObjectEquals("{'[{(<swapped>)}]':[[[['[{(<swapped>)}]',null],null],null],null]}", x5); + assertNull(x5n); + } + @Override + public void setMultiParamsImplicitSwappedPojo(ImplicitSwappedPojo x1, ImplicitSwappedPojo[][][] x2, ImplicitSwappedPojo[][][] x2n, List<ImplicitSwappedPojo[][][]> x3, List<ImplicitSwappedPojo[][][]> x3n, Map<ImplicitSwappedPojo,ImplicitSwappedPojo> x4, Map<ImplicitSwappedPojo,ImplicitSwappedPojo> x4n, Map<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>> x5, Map<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>> x5n) { + assertObjectEquals("'[{(<swapped>)}]'", x1); + assertObjectEquals("[[['[{(<swapped>)}]',null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[['[{(<swapped>)}]',null],null],null],null]", x3); + assertEquals(ImplicitSwappedPojo[][][].class, x3.get(0).getClass()); + assertNull(x3n); + assertObjectEquals("{'[{(<swapped>)}]':'[{(<swapped>)}]'}", x4); + assertNull(x4n); + assertObjectEquals("{'[{(<swapped>)}]':[[[['[{(<swapped>)}]',null],null],null],null]}", x5); + assertNull(x5n); + } + @Override + public void setMultiParamsEnum(TestEnum x1, TestEnum[][][] x2, TestEnum[][][] x2n, List<TestEnum[][][]> x3, List<TestEnum[][][]> x3n, Map<TestEnum,TestEnum> x4, Map<TestEnum,TestEnum> x4n, Map<TestEnum,List<TestEnum[][][]>> x5, Map<TestEnum,List<TestEnum[][][]>> x5n) { + assertObjectEquals("'TWO'", x1); + assertObjectEquals("[[['TWO',null],null],null]", x2); + assertNull(x2n); + assertObjectEquals("[[[['TWO',null],null],null],null]", x3); + assertEquals(TestEnum[][][].class, x3.get(0).getClass()); + assertNull(x3n); + assertObjectEquals("{ONE:'TWO'}", x4); + assertNull(x4n); + assertObjectEquals("{ONE:[[[['TWO',null],null],null],null]}", x5); + assertNull(x5n); + } }; } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/3e79baeb/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java ---------------------------------------------------------------------- diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java index b7b8261..7840798 100644 --- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java +++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java @@ -107,17 +107,17 @@ public class InterfaceProxyTest extends RestTestcase { @Test public void returnInt3dArray() { - assertObjectEquals("[[[1,2]]]", getProxy().returnInt3dArray()); + assertObjectEquals("[[[1,2],null],null]", getProxy().returnInt3dArray()); } @Test public void returnInteger3dArray() { - assertObjectEquals("[[[1,null]]]", getProxy().returnInteger3dArray()); + assertObjectEquals("[[[1,null],null],null]", getProxy().returnInteger3dArray()); } @Test public void returnString3dArray() { - assertObjectEquals("[[['foo','bar',null]]]", getProxy().returnString3dArray()); + assertObjectEquals("[[['foo','bar',null],null],null]", getProxy().returnString3dArray()); } @Test @@ -130,7 +130,7 @@ public class InterfaceProxyTest extends RestTestcase { @Test public void returnInteger3dList() { List<List<List<Integer>>> x = getProxy().returnInteger3dList(); - assertObjectEquals("[[[1,null]]]", x); + assertObjectEquals("[[[1,null],null],null]", x); assertEquals(Integer.class, x.get(0).get(0).get(0).getClass()); } @@ -427,17 +427,17 @@ public class InterfaceProxyTest extends RestTestcase { @Test public void setInt3dArray() { - getProxy().setInt3dArray(new int[][][]{{{1,2}}}); + getProxy().setInt3dArray(new int[][][]{{{1,2},null},null}); } @Test public void setInteger3dArray() { - getProxy().setInteger3dArray(new Integer[][][]{{{1,null}}}); + getProxy().setInteger3dArray(new Integer[][][]{{{1,null},null},null}); } @Test public void setString3dArray() { - getProxy().setString3dArray(new String[][][]{{{"foo","bar",null}}}); + getProxy().setString3dArray(new String[][][]{{{"foo",null},null},null}); } @Test @@ -446,21 +446,15 @@ public class InterfaceProxyTest extends RestTestcase { } @Test - public void setInteger2dList() { - getProxy().setInteger2dList( - new AList<List<Integer>>() - .append(new AList<Integer>().append(1).append(null)) - ); - } - - @Test public void setInteger3dList() { getProxy().setInteger3dList( new AList<List<List<Integer>>>() .append( new AList<List<Integer>>() .append(new AList<Integer>().append(1).append(null)) + .append(null) ) + .append(null) ); } @@ -601,4 +595,108 @@ public class InterfaceProxyTest extends RestTestcase { public void setEnum1d3dListMap() { getProxy().setEnum1d3dListMap(new AMap<TestEnum,List<TestEnum[][][]>>().append(TestEnum.ONE, new AList<TestEnum[][][]>().append(new TestEnum[][][]{{{TestEnum.TWO,null},null},null}).append(null))); } + + //-------------------------------------------------------------------------------- + // Test multi-parameters + //-------------------------------------------------------------------------------- + + @Test + public void setMultiParamsInts() { + int x1 = 1; + int[][][] x2 = new int[][][]{{{1,2},null},null}; + int[][][] x2n = null; + List<int[][][]> x3 = new AList<int[][][]>().append(x2).append(null); + List<int[][][]> x3n = null; + getProxy().setMultiParamsInts(x1, x2, x2n, x3, x3n); + } + @Test + public void setMultiParamsInteger() { + Integer x1 = 1; + Integer x1n = null; + Integer[][][] x2 = new Integer[][][]{{{1,null},null},null}; + Integer[][][] x2n = null; + List<Integer[][][]> x3 = new AList<Integer[][][]>().append(x2).append(null); + List<Integer[][][]> x3n = null; + getProxy().setMultiParamsInteger(x1, x1n, x2, x2n, x3, x3n); + } + @Test + public void setMultiParamsFloat() { + float x1 = 1; + float[][][] x2 = new float[][][]{{{1,2},null},null}; + float[][][] x2n = null; + List<float[][][]> x3 = new AList<float[][][]>().append(x2).append(null); + List<float[][][]> x3n = null; + getProxy().setMultiParamsFloat(x1, x2, x2n, x3, x3n); + } + @Test + public void setMultiParamsFloatObject() { + Float x1 = 1f; + Float x1n = null; + Float[][][] x2 = new Float[][][]{{{1f,null},null},null}; + Float[][][] x2n = null; + List<Float[][][]> x3 = new AList<Float[][][]>().append(x2).append(null); + List<Float[][][]> x3n = null; + getProxy().setMultiParamsFloatObject(x1, x1n, x2, x2n, x3, x3n); + } + @Test + public void setMultiParamsString() { + String x1 = "foo"; + String[][][] x2 = new String[][][]{{{"foo",null},null},null}; + String[][][] x2n = null; + List<String[][][]> x3 = new AList<String[][][]>().append(x2).append(null); + List<String[][][]> x3n = null; + getProxy().setMultiParamsString(x1, x2, x2n, x3, x3n); + } + @Test + public void setMultiParamsBean() { + Bean x1 = new Bean().init(); + Bean[][][] x2 = new Bean[][][]{{{new Bean().init(),null},null},null}; + Bean[][][] x2n = null; + List<Bean[][][]> x3 = new AList<Bean[][][]>().append(x2).append(null); + List<Bean[][][]> x3n = null; + Map<String,Bean> x4 = new AMap<String,Bean>().append("foo",new Bean().init()); + Map<String,Bean> x4n = null; + Map<String,List<Bean[][][]>> x5 = new AMap<String,List<Bean[][][]>>().append("foo", x3); + Map<String,List<Bean[][][]>> x5n = null; + getProxy().setMultiParamsBean(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } + @Test + public void setMultiParamsSwappedPojo() { + SwappedPojo x1 = new SwappedPojo(); + SwappedPojo[][][] x2 = new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null}; + SwappedPojo[][][] x2n = null; + List<SwappedPojo[][][]> x3 = new AList<SwappedPojo[][][]>().append(x2).append(null); + List<SwappedPojo[][][]> x3n = null; + Map<SwappedPojo,SwappedPojo> x4 = new AMap<SwappedPojo,SwappedPojo>().append(new SwappedPojo(), new SwappedPojo()); + Map<SwappedPojo,SwappedPojo> x4n = null; + Map<SwappedPojo,List<SwappedPojo[][][]>> x5 = new AMap<SwappedPojo,List<SwappedPojo[][][]>>().append(new SwappedPojo(), x3); + Map<SwappedPojo,List<SwappedPojo[][][]>> x5n = null; + getProxy().setMultiParamsSwappedPojo(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } + @Test + public void setMultiParamsImplicitSwappedPojo() { + ImplicitSwappedPojo x1 = new ImplicitSwappedPojo(); + ImplicitSwappedPojo[][][] x2 = new ImplicitSwappedPojo[][][]{{{new ImplicitSwappedPojo(),null},null},null}; + ImplicitSwappedPojo[][][] x2n = null; + List<ImplicitSwappedPojo[][][]> x3 = new AList<ImplicitSwappedPojo[][][]>().append(x2).append(null); + List<ImplicitSwappedPojo[][][]> x3n = null; + Map<ImplicitSwappedPojo,ImplicitSwappedPojo> x4 = new AMap<ImplicitSwappedPojo,ImplicitSwappedPojo>().append(new ImplicitSwappedPojo(), new ImplicitSwappedPojo()); + Map<ImplicitSwappedPojo,ImplicitSwappedPojo> x4n = null; + Map<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>> x5 = new AMap<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>>().append(new ImplicitSwappedPojo(), x3); + Map<ImplicitSwappedPojo,List<ImplicitSwappedPojo[][][]>> x5n = null; + getProxy().setMultiParamsImplicitSwappedPojo(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } + @Test + public void setMultiParamsEnum() { + TestEnum x1 = TestEnum.TWO; + TestEnum[][][] x2 = new TestEnum[][][]{{{TestEnum.TWO,null},null},null}; + TestEnum[][][] x2n = null; + List<TestEnum[][][]> x3 = new AList<TestEnum[][][]>().append(x2).append(null); + List<TestEnum[][][]> x3n = null; + Map<TestEnum,TestEnum> x4 = new AMap<TestEnum,TestEnum>().append(TestEnum.ONE,TestEnum.TWO); + Map<TestEnum,TestEnum> x4n = null; + Map<TestEnum,List<TestEnum[][][]>> x5 = new AMap<TestEnum,List<TestEnum[][][]>>().append(TestEnum.ONE, x3); + Map<TestEnum,List<TestEnum[][][]>> x5n = null; + getProxy().setMultiParamsEnum(x1, x2, x2n, x3, x3n, x4, x4n, x5, x5n); + } }
