Repository: incubator-juneau Updated Branches: refs/heads/master 8e6e5a042 -> 8591ef182
Proxy interface testcases. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/8591ef18 Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/8591ef18 Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/8591ef18 Branch: refs/heads/master Commit: 8591ef182589784d267156553a63b615130730b1 Parents: 8e6e5a0 Author: JamesBognar <[email protected]> Authored: Tue Mar 28 09:08:58 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Tue Mar 28 09:08:58 2017 -0400 ---------------------------------------------------------------------- juneau-core/src/main/javadoc/overview.html | 6 + .../apache/juneau/rest/test/InterfaceProxy.java | 59 ++++-- .../rest/test/InterfaceProxyResource.java | 146 ++++--------- .../juneau/rest/test/InterfaceProxyTest.java | 210 ++++++------------- 4 files changed, 146 insertions(+), 275 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8591ef18/juneau-core/src/main/javadoc/overview.html ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/javadoc/overview.html b/juneau-core/src/main/javadoc/overview.html index 5c80d9a..8ca14b2 100644 --- a/juneau-core/src/main/javadoc/overview.html +++ b/juneau-core/src/main/javadoc/overview.html @@ -5764,6 +5764,12 @@ </ul> <li>{@link org.apache.juneau.html.HtmlParser} can now parse full body contents generated by {@link org.apache.juneau.html.HtmlDocSerializer}. <li>Parse-args supported added to {@link org.apache.juneau.msgpack.MsgPackParser} to allow it to be used in remoteable proxies. + <li>Added some convenience classes for constructing collections using a fluent interface: + <ul> + <li>{@link org.apache.juneau.utils.AList} + <li>{@link org.apache.juneau.utils.ASet} + <li>{@link org.apache.juneau.utils.AMap} + </ul> </ul> <h6 class='topic'>org.apache.juneau.rest</h6> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8591ef18/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 2391dc0..38f8aa3 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 @@ -14,6 +14,12 @@ package org.apache.juneau.rest.test; import java.util.*; +import org.apache.juneau.*; +import org.apache.juneau.annotation.*; +import org.apache.juneau.parser.*; +import org.apache.juneau.serializer.*; +import org.apache.juneau.transform.*; + /** * Interface proxy exposed in InterfaceProxyResource and tested in InterfaceProxyTest. */ @@ -30,31 +36,24 @@ public interface InterfaceProxy { Float returnFloatObject(); String returnString(); String returnNullString(); - int[] returnIntArray(); - int[][] returnInt2dArray(); int[][][] returnInt3dArray(); - Integer[] returnIntegerArray(); - Integer[][] returnInteger2dArray(); Integer[][][] returnInteger3dArray(); - String[] returnStringArray(); - String[][] returnString2dArray(); String[][][] returnString3dArray(); List<Integer> returnIntegerList(); - List<List<Integer>> returnInteger2dList(); List<List<List<Integer>>> returnInteger3dList(); - List<Integer[]> returnInteger1d1dList(); - List<Integer[][]> returnInteger1d2dList(); List<Integer[][][]> returnInteger1d3dList(); - List<int[]> returnInt1d1dList(); - List<int[][]> returnInt1d2dList(); List<int[][][]> returnInt1d3dList(); List<String> returnStringList(); Bean returnBean(); - Bean[] returnBeanArray(); + Bean[][][] returnBean3dArray(); List<Bean> returnBeanList(); + List<Bean[][][]> returnBean1d3dList(); Map<String,Bean> returnBeanMap(); Map<String,List<Bean>> returnBeanListMap(); + Map<String,List<Bean[][][]>> returnBean1d3dListMap(); Map<Integer,List<Bean>> returnBeanListMapIntegerKeys(); + SwappedPojo returnSwappedPojo(); + SwappedPojo[][][] returnSwappedPojo3dArray(); //-------------------------------------------------------------------------------- // Test server-side exception serialization. @@ -73,31 +72,25 @@ public interface InterfaceProxy { void setFloatObject(Float x); void setString(String x); void setNullString(String x); - void setIntArray(int[] x); - void setInt2dArray(int[][] x); void setInt3dArray(int[][][] x); - void setIntegerArray(Integer[] x); - void setInteger2dArray(Integer[][] x); void setInteger3dArray(Integer[][][] x); - void setStringArray(String[] x); - void setString2dArray(String[][] x); void setString3dArray(String[][][] x); void setIntegerList(List<Integer> x); void setInteger2dList(List<List<Integer>> x); void setInteger3dList(List<List<List<Integer>>> x); - void setInteger1d1dList(List<Integer[]> x); - void setInteger1d2dList(List<Integer[][]> x); void setInteger1d3dList(List<Integer[][][]> x); - void setInt1d1dList(List<int[]> x); - void setInt1d2dList(List<int[][]> x); void setInt1d3dList(List<int[][][]> x); void setStringList(List<String> x); void setBean(Bean x); - void setBeanArray(Bean[] x); + void setBean3dArray(Bean[][][] x); void setBeanList(List<Bean> x); + void setBean1d3dList(List<Bean[][][]> x); void setBeanMap(Map<String,Bean> x); void setBeanListMap(Map<String,List<Bean>> x); + void setBean1d3dListMap(Map<String,List<Bean[][][]>> x); void setBeanListMapIntegerKeys(Map<Integer,List<Bean>> x); + void setSwappedPojo(SwappedPojo x); + void setSwappedPojo3dArray(SwappedPojo[][][] x); public static class Bean { public int a; @@ -120,4 +113,24 @@ public interface InterfaceProxy { @SuppressWarnings("serial") public static class InterfaceProxyException2 extends Throwable { } + + @Pojo(swap=SwappedPojoSwap.class) + public static class SwappedPojo { + public boolean wasUnswapped; + } + + public static class SwappedPojoSwap extends PojoSwap<SwappedPojo,String> { + @Override + public String swap(BeanSession session, SwappedPojo c) throws SerializeException { + return "[{(<swapped>)}]"; + } + + @Override + public SwappedPojo unswap(BeanSession session, String f, ClassMeta<?> hint) throws ParseException { + SwappedPojo c = new SwappedPojo(); + if (f.equals("[{(<swapped>)}]")) + c.wasUnswapped = true; + return c; + } + } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8591ef18/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 06edda7..cf4132e 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 @@ -15,10 +15,8 @@ package org.apache.juneau.rest.test; import static java.util.Arrays.*; import static org.junit.Assert.*; -import java.lang.reflect.*; import java.util.*; -import org.apache.juneau.*; import org.apache.juneau.json.*; import org.apache.juneau.rest.annotation.*; import org.apache.juneau.rest.jena.*; @@ -30,7 +28,6 @@ import org.junit.*; */ @RestResource( path="/testInterfaceProxyResource") -@SuppressWarnings("serial") public class InterfaceProxyResource extends RestServletJenaDefault { private static final long serialVersionUID = 1L; @@ -72,38 +69,14 @@ public class InterfaceProxyResource extends RestServletJenaDefault { return null; } @Override - public int[] returnIntArray() { - return new int[]{1,2}; - } - @Override - public int[][] returnInt2dArray() { - return new int[][]{{1,2}}; - } - @Override public int[][][] returnInt3dArray() { return new int[][][]{{{1,2}}}; } @Override - public Integer[] returnIntegerArray() { - return new Integer[]{1,null}; - } - @Override - public Integer[][] returnInteger2dArray() { - return new Integer[][]{{1,null}}; - } - @Override public Integer[][][] returnInteger3dArray() { return new Integer[][][]{{{1,null}}}; } @Override - public String[] returnStringArray() { - return new String[]{"foo","bar",null}; - } - @Override - public String[][] returnString2dArray() { - return new String[][]{{"foo","bar",null}}; - } - @Override public String[][][] returnString3dArray() { return new String[][][]{{{"foo","bar",null}}}; } @@ -112,13 +85,6 @@ public class InterfaceProxyResource extends RestServletJenaDefault { return asList(new Integer[]{1,null}); } @Override - public List<List<Integer>> returnInteger2dList() { - return new AList<List<Integer>>() - .append( - new AList<Integer>().append(1).append(null) - ); - } - @Override public List<List<List<Integer>>> returnInteger3dList() { return new AList<List<List<Integer>>>() .append( @@ -129,26 +95,10 @@ public class InterfaceProxyResource extends RestServletJenaDefault { ); } @Override - public List<Integer[]> returnInteger1d1dList() { - return new AList<Integer[]>().append(new Integer[]{1,null}).append(null); - } - @Override - public List<Integer[][]> returnInteger1d2dList() { - return new AList<Integer[][]>().append(new Integer[][]{{1,null},null}).append(null); - } - @Override public List<Integer[][][]> returnInteger1d3dList() { return new AList<Integer[][][]>().append(new Integer[][][]{{{1,null},null},null}).append(null); } @Override - public List<int[]> returnInt1d1dList() { - return new AList<int[]>().append(new int[]{1,2}).append(null); - } - @Override - public List<int[][]> returnInt1d2dList() { - return new AList<int[][]>().append(new int[][]{{1,2},null}).append(null); - } - @Override public List<int[][][]> returnInt1d3dList() { return new AList<int[][][]>().append(new int[][][]{{{1,2},null},null}).append(null); } @@ -161,14 +111,18 @@ public class InterfaceProxyResource extends RestServletJenaDefault { return new Bean().init(); } @Override - public Bean[] returnBeanArray() { - return new Bean[]{new Bean().init()}; + public Bean[][][] returnBean3dArray() { + return new Bean[][][]{{{new Bean().init(),null},null},null}; } @Override public List<Bean> returnBeanList() { return asList(new Bean().init()); } @Override + public List<Bean[][][]> returnBean1d3dList() { + return new AList<Bean[][][]>().append(new Bean[][][]{{{new Bean().init(),null},null},null}).append(null); + } + @Override public Map<String,Bean> returnBeanMap() { return new AMap<String,Bean>().append("foo",new Bean().init()); } @@ -177,10 +131,22 @@ public class InterfaceProxyResource extends RestServletJenaDefault { return new AMap<String,List<Bean>>().append("foo",asList(new Bean().init())); } @Override + public Map<String,List<Bean[][][]>> returnBean1d3dListMap() { + return new AMap<String,List<Bean[][][]>>().append("foo", new AList<Bean[][][]>().append(new Bean[][][]{{{new Bean().init(),null},null},null}).append(null)); + } + @Override public Map<Integer,List<Bean>> returnBeanListMapIntegerKeys() { return new AMap<Integer,List<Bean>>().append(1,asList(new Bean().init())); } @Override + public SwappedPojo returnSwappedPojo() { + return new SwappedPojo(); + } + @Override + public SwappedPojo[][][] returnSwappedPojo3dArray() { + return new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null}; + } + @Override public void throwException1() throws InterfaceProxy.InterfaceProxyException1 { throw new InterfaceProxy.InterfaceProxyException1("foo"); } @@ -220,38 +186,14 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertNull(x); } @Override - public void setIntArray(int[] x) { - assertObjectEquals("[1,2]", x); - } - @Override - public void setInt2dArray(int[][] x) { - assertObjectEquals("[[1,2]]", x); - } - @Override public void setInt3dArray(int[][][] x) { assertObjectEquals("[[[1,2]]]", x); } @Override - public void setIntegerArray(Integer[] x) { - assertObjectEquals("[1,null]", x); - } - @Override - public void setInteger2dArray(Integer[][] x) { - assertObjectEquals("[[1,null]]", x); - } - @Override public void setInteger3dArray(Integer[][][] x) { assertObjectEquals("[[[1,null]]]", x); } @Override - public void setStringArray(String[] x) { - assertObjectEquals("['foo','bar',null]", x); - } - @Override - public void setString2dArray(String[][] x) { - assertObjectEquals("[['foo','bar',null]]", x); - } - @Override public void setString3dArray(String[][][] x) { assertObjectEquals("[[['foo','bar',null]]]", x); } @@ -271,34 +213,12 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertEquals(Integer.class, x.get(0).get(0).get(0).getClass()); } @Override - public void setInteger1d1dList(List<Integer[]> x) { - assertObjectEquals("[[1,null],null]", x); - assertEquals(Integer[].class, x.get(0).getClass()); - assertEquals(Integer.class, x.get(0)[0].getClass()); - } - @Override - public void setInteger1d2dList(List<Integer[][]> x) { - assertObjectEquals("[[[1,null],null],null]", x); - assertEquals(Integer[][].class, x.get(0).getClass()); - assertEquals(Integer.class, x.get(0)[0][0].getClass()); - } - @Override public void setInteger1d3dList(List<Integer[][][]> x) { assertObjectEquals("[[[[1,null],null],null],null]", x); assertEquals(Integer[][][].class, x.get(0).getClass()); assertEquals(Integer.class, x.get(0)[0][0][0].getClass()); } @Override - public void setInt1d1dList(List<int[]> x) { - assertObjectEquals("[[1,2],null]", x); - assertEquals(int[].class, x.get(0).getClass()); - } - @Override - public void setInt1d2dList(List<int[][]> x) { - assertObjectEquals("[[[1,2],null],null]", x); - assertEquals(int[][].class, x.get(0).getClass()); - } - @Override public void setInt1d3dList(List<int[][][]> x) { assertObjectEquals("[[[[1,2],null],null],null]", x); assertEquals(int[][][].class, x.get(0).getClass()); @@ -312,14 +232,18 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertObjectEquals("{a:1,b:'foo'}", x); } @Override - public void setBeanArray(Bean[] x) { - assertObjectEquals("[{a:1,b:'foo'}]", x); + public void setBean3dArray(Bean[][][] x) { + assertObjectEquals("[[[{a:1,b:'foo'},null],null],null]", x); } @Override public void setBeanList(List<Bean> x) { assertObjectEquals("[{a:1,b:'foo'}]", x); } @Override + public void setBean1d3dList(List<Bean[][][]> x) { + assertObjectEquals("[[[[{a:1,b:'foo'},null],null],null],null]", x); + } + @Override public void setBeanMap(Map<String,Bean> x) { assertObjectEquals("{foo:{a:1,b:'foo'}}", x); } @@ -328,23 +252,27 @@ public class InterfaceProxyResource extends RestServletJenaDefault { assertObjectEquals("{foo:[{a:1,b:'foo'}]}", x); } @Override + public void setBean1d3dListMap(Map<String,List<Bean[][][]>> x) { + assertObjectEquals("{foo:[[[[{a:1,b:'foo'},null],null],null],null]}", x); + } + @Override public void setBeanListMapIntegerKeys(Map<Integer,List<Bean>> x) { assertObjectEquals("{'1':[{a:1,b:'foo'}]}", x); // Note: JsonSerializer serializes key as string. assertEquals(Integer.class, x.keySet().iterator().next().getClass()); } + @Override + public void setSwappedPojo(SwappedPojo x) { + assertTrue(x.wasUnswapped); + } + @Override + public void setSwappedPojo3dArray(SwappedPojo[][][] x) { + assertObjectEquals("[[['[{(<swapped>)}]',null],null],null]", x); + assertTrue(x[0][0][0].wasUnswapped); + } }; } private static void assertObjectEquals(String e, Object o) { Assert.assertEquals(e, JsonSerializer.DEFAULT_LAX.toString(o)); } - - public static void main(String[] args) { - JsonSerializer.DEFAULT_LAX_READABLE.println(BeanContext.DEFAULT.createSession().getClassMetas(new Type[]{X.class})); - - } - - public static class X extends LinkedList<int[][]> { - - } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/8591ef18/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 d1312c6..c4c0299 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 @@ -101,145 +101,122 @@ public class InterfaceProxyTest extends RestTestcase { } @Test - public void returnIntArray() { - assertObjectEquals("[1,2]", getProxy().returnIntArray()); - } - - @Test - public void returnInt2dArray() { - assertObjectEquals("[[1,2]]", getProxy().returnInt2dArray()); - } - - @Test public void returnInt3dArray() { assertObjectEquals("[[[1,2]]]", getProxy().returnInt3dArray()); } @Test - public void returnIntegerArray() { - assertObjectEquals("[1,null]", getProxy().returnIntegerArray()); - } - - @Test - public void returnInteger2dArray() { - assertObjectEquals("[[1,null]]", getProxy().returnInteger2dArray()); - } - - @Test public void returnInteger3dArray() { assertObjectEquals("[[[1,null]]]", getProxy().returnInteger3dArray()); } @Test - public void returnStringArray() { - assertObjectEquals("['foo','bar',null]", getProxy().returnStringArray()); - } - - @Test - public void returnString2dArray() { - assertObjectEquals("[['foo','bar',null]]", getProxy().returnString2dArray()); - } - - @Test public void returnString3dArray() { assertObjectEquals("[[['foo','bar',null]]]", getProxy().returnString3dArray()); } @Test public void returnIntegerList() { - assertObjectEquals("[1,null]", getProxy().returnIntegerList()); - assertEquals(Integer.class, getProxy().returnIntegerList().get(0).getClass()); - } - - @Test - public void returnInteger2dList() { - assertObjectEquals("[[1,null]]", getProxy().returnInteger2dList()); - assertEquals(Integer.class, getProxy().returnInteger2dList().get(0).get(0).getClass()); + List<Integer> x = getProxy().returnIntegerList(); + assertObjectEquals("[1,null]", x); + assertEquals(Integer.class, x.get(0).getClass()); } @Test public void returnInteger3dList() { - assertObjectEquals("[[[1,null]]]", getProxy().returnInteger3dList()); - assertEquals(Integer.class, getProxy().returnInteger3dList().get(0).get(0).get(0).getClass()); + List<List<List<Integer>>> x = getProxy().returnInteger3dList(); + assertObjectEquals("[[[1,null]]]", x); + assertEquals(Integer.class, x.get(0).get(0).get(0).getClass()); } @Test - public void returnInteger1d1dList() { - assertObjectEquals("[[1,null],null]", getProxy().returnInteger1d1dList()); - assertEquals(Integer.class, getProxy().returnInteger1d1dList().get(0)[0].getClass()); + public void returnInteger1d3dList() { + List<Integer[][][]> x = getProxy().returnInteger1d3dList(); + assertObjectEquals("[[[[1,null],null],null],null]", x); + assertEquals(Integer.class, x.get(0)[0][0][0].getClass()); } @Test - public void returnInteger1d2dList() { - assertObjectEquals("[[[1,null],null],null]", getProxy().returnInteger1d2dList()); - assertEquals(Integer.class, getProxy().returnInteger1d2dList().get(0)[0][0].getClass()); + public void returnInt1d3dList() { + List<int[][][]> x = getProxy().returnInt1d3dList(); + assertObjectEquals("[[[[1,2],null],null],null]", x); + assertEquals(int[][][].class, x.get(0).getClass()); } @Test - public void returnInteger1d3dList() { - assertObjectEquals("[[[[1,null],null],null],null]", getProxy().returnInteger1d3dList()); - assertEquals(Integer.class, getProxy().returnInteger1d3dList().get(0)[0][0][0].getClass()); + public void returnStringList() { + assertObjectEquals("['foo','bar',null]", getProxy().returnStringList()); } @Test - public void returnInt1d1dList() { - assertObjectEquals("[[1,2],null]", getProxy().returnInt1d1dList()); - assertEquals(int[].class, getProxy().returnInt1d1dList().get(0).getClass()); + public void returnBean() { + Bean x = getProxy().returnBean(); + assertObjectEquals("{a:1,b:'foo'}", x); + assertEquals(InterfaceProxy.Bean.class, x.getClass()); } @Test - public void returnInt1d2dList() { - assertObjectEquals("[[[1,2],null],null]", getProxy().returnInt1d2dList()); - assertEquals(int[][].class, getProxy().returnInt1d2dList().get(0).getClass()); + public void returnBean3dArray() { + Bean[][][] x = getProxy().returnBean3dArray(); + assertObjectEquals("[[[{a:1,b:'foo'},null],null],null]", x); + assertEquals(InterfaceProxy.Bean.class, x[0][0][0].getClass()); } @Test - public void returnInt1d3dList() { - assertObjectEquals("[[[[1,2],null],null],null]", getProxy().returnInt1d3dList()); - assertEquals(int[][][].class, getProxy().returnInt1d3dList().get(0).getClass()); + public void returnBeanList() { + List<Bean> x = getProxy().returnBeanList(); + assertObjectEquals("[{a:1,b:'foo'}]", x); + assertEquals(InterfaceProxy.Bean.class, x.get(0).getClass()); } @Test - public void returnStringList() { - assertObjectEquals("['foo','bar',null]", getProxy().returnStringList()); - assertTrue(getProxy().returnStringList() instanceof List); + public void returnBean1d3dList() { + List<Bean[][][]> x = getProxy().returnBean1d3dList(); + assertObjectEquals("[[[[{a:1,b:'foo'},null],null],null],null]", x); + assertEquals(InterfaceProxy.Bean.class, x.get(0)[0][0][0].getClass()); } @Test - public void returnBean() { - assertObjectEquals("{a:1,b:'foo'}", getProxy().returnBean()); - assertEquals(InterfaceProxy.Bean.class, getProxy().returnBean().getClass()); + public void returnBeanMap() { + Map<String,Bean> x = getProxy().returnBeanMap(); + assertObjectEquals("{foo:{a:1,b:'foo'}}", x); + assertEquals(InterfaceProxy.Bean.class, x.get("foo").getClass()); } @Test - public void returnBeanArray() { - assertObjectEquals("[{a:1,b:'foo'}]", getProxy().returnBeanArray()); - assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanArray()[0].getClass()); + public void returnBeanListMap() { + Map<String,List<Bean>> x = getProxy().returnBeanListMap(); + assertObjectEquals("{foo:[{a:1,b:'foo'}]}", x); + assertEquals(InterfaceProxy.Bean.class, x.get("foo").get(0).getClass()); } @Test - public void returnBeanList() { - assertObjectEquals("[{a:1,b:'foo'}]", getProxy().returnBeanList()); - assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanList().get(0).getClass()); + public void returnBean1d3dListMap() { + Map<String,List<Bean[][][]>> x = getProxy().returnBean1d3dListMap(); + assertObjectEquals("{foo:[[[[{a:1,b:'foo'},null],null],null],null]}", x); + assertEquals(InterfaceProxy.Bean.class, x.get("foo").get(0)[0][0][0].getClass()); } @Test - public void returnBeanMap() { - assertObjectEquals("{foo:{a:1,b:'foo'}}", getProxy().returnBeanMap()); - assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanMap().get("foo").getClass()); + public void returnBeanListMapIntegerKeys() { + // Note: JsonSerializer serializes key as string. + Map<Integer,List<Bean>> x = getProxy().returnBeanListMapIntegerKeys(); + assertObjectEquals("{'1':[{a:1,b:'foo'}]}", x); + assertEquals(Integer.class, x.keySet().iterator().next().getClass()); } @Test - public void returnBeanListMap() { - assertObjectEquals("{foo:[{a:1,b:'foo'}]}", getProxy().returnBeanListMap()); - assertEquals(InterfaceProxy.Bean.class, getProxy().returnBeanListMap().get("foo").get(0).getClass()); + public void returnSwappedPojo() { + SwappedPojo x = getProxy().returnSwappedPojo(); + assertObjectEquals("'[{(<swapped>)}]'", x); + assertTrue(x.wasUnswapped); } @Test - public void returnBeanListMapIntegerKeys() { - // Note: JsonSerializer serializes key as string. - assertObjectEquals("{'1':[{a:1,b:'foo'}]}", getProxy().returnBeanListMapIntegerKeys()); - assertEquals(Integer.class, getProxy().returnBeanListMapIntegerKeys().keySet().iterator().next().getClass()); + public void returnSwappedPojo3dArray() { + SwappedPojo[][][] x = getProxy().returnSwappedPojo3dArray(); + assertObjectEquals("[[['[{(<swapped>)}]',null],null],null]", x); + assertTrue(x[0][0][0].wasUnswapped); } @Test @@ -322,46 +299,16 @@ public class InterfaceProxyTest extends RestTestcase { } @Test - public void setIntArray() { - getProxy().setIntArray(new int[]{1,2}); - } - - @Test - public void setInt2dArray() { - getProxy().setInt2dArray(new int[][]{{1,2}}); - } - - @Test public void setInt3dArray() { getProxy().setInt3dArray(new int[][][]{{{1,2}}}); } @Test - public void setIntegerArray() { - getProxy().setIntegerArray(new Integer[]{1,null}); - } - - @Test - public void setInteger2dArray() { - getProxy().setInteger2dArray(new Integer[][]{{1,null}}); - } - - @Test public void setInteger3dArray() { getProxy().setInteger3dArray(new Integer[][][]{{{1,null}}}); } @Test - public void setStringArray() { - getProxy().setStringArray(new String[]{"foo","bar",null}); - } - - @Test - public void setString2dArray() { - getProxy().setString2dArray(new String[][]{{"foo","bar",null}}); - } - - @Test public void setString3dArray() { getProxy().setString3dArray(new String[][][]{{{"foo","bar",null}}}); } @@ -391,20 +338,6 @@ public class InterfaceProxyTest extends RestTestcase { } @Test - public void setInteger1d1dList() { - getProxy().setInteger1d1dList( - new AList<Integer[]>().append(new Integer[]{1,null}).append(null) - ); - } - - @Test - public void setInteger1d2dList() { - getProxy().setInteger1d2dList( - new AList<Integer[][]>().append(new Integer[][]{{1,null},null}).append(null) - ); - } - - @Test public void setInteger1d3dList() { getProxy().setInteger1d3dList( new AList<Integer[][][]>().append(new Integer[][][]{{{1,null},null},null}).append(null) @@ -412,20 +345,6 @@ public class InterfaceProxyTest extends RestTestcase { } @Test - public void setInt1d1dList() { - getProxy().setInt1d1dList( - new AList<int[]>().append(new int[]{1,2}).append(null) - ); - } - - @Test - public void setInt1d2dList() { - getProxy().setInt1d2dList( - new AList<int[][]>().append(new int[][]{{1,2},null}).append(null) - ); - } - - @Test public void setInt1d3dList() { getProxy().setInt1d3dList( new AList<int[][][]>().append(new int[][][]{{{1,2},null},null}).append(null) @@ -443,11 +362,6 @@ public class InterfaceProxyTest extends RestTestcase { } @Test - public void setBeanArray() { - getProxy().setBeanArray(new Bean[]{new Bean().init()}); - } - - @Test public void setBeanList() { getProxy().setBeanList(Arrays.asList(new Bean().init())); } @@ -466,4 +380,14 @@ public class InterfaceProxyTest extends RestTestcase { public void setBeanListMapIntegerKeys() { getProxy().setBeanListMapIntegerKeys(new AMap<Integer,List<Bean>>().append(1,Arrays.asList(new Bean().init()))); } + + @Test + public void setSwappedPojo() { + getProxy().setSwappedPojo(new SwappedPojo()); + } + + @Test + public void setSwappedPojo3dArray() { + getProxy().setSwappedPojo3dArray(new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null}); + } }
