diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-06-25 12:43:51 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-25 12:43:51 +0300 |
commit | 8b3ed29b86f459f75d6cc0e4c51a2bc4becc25f5 (patch) | |
tree | ee827f526de1fe03113f0585e9715d4e71fc79ca /tests/testbench | |
parent | 58ca6dff762e14512d4e4a9fec92a27345988b52 (diff) | |
parent | a7097c68efc075c4f0f77a22b2c40cbf0ff3a589 (diff) | |
download | vaadin-framework-8b3ed29b86f459f75d6cc0e4c51a2bc4becc25f5.tar.gz vaadin-framework-8b3ed29b86f459f75d6cc0e4c51a2bc4becc25f5.zip |
Merge branch 'rpcArray'
Conflicts:
src/com/vaadin/terminal/gwt/server/JsonCodec.java
Diffstat (limited to 'tests/testbench')
6 files changed, 694 insertions, 0 deletions
diff --git a/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java b/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java new file mode 100644 index 0000000000..0f7f5cca32 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/serialization/SerializerTest.java @@ -0,0 +1,273 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.serialization; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.vaadin.annotations.Widgetset; +import com.vaadin.terminal.WrappedRequest; +import com.vaadin.terminal.gwt.client.Connector; +import com.vaadin.tests.components.AbstractTestRoot; +import com.vaadin.tests.util.Log; +import com.vaadin.tests.widgetset.client.ComplexTestBean; +import com.vaadin.tests.widgetset.client.SerializerTestRpc; +import com.vaadin.tests.widgetset.client.SimpleTestBean; +import com.vaadin.tests.widgetset.server.SerializerTestExtension; + +@Widgetset("com.vaadin.tests.widgetset.TestingWidgetSet") +public class SerializerTest extends AbstractTestRoot { + + private Log log = new Log(40); + + @Override + protected void setup(WrappedRequest request) { + final SerializerTestExtension testExtension = new SerializerTestExtension(); + addExtension(testExtension); + addComponent(log); + + SerializerTestRpc rpc = testExtension + .getRpcProxy(SerializerTestRpc.class); + rpc.sendBoolean(true, Boolean.FALSE, new boolean[] { true, true, false, + true, false, false }); + rpc.sendByte((byte) 5, Byte.valueOf((byte) -12), new byte[] { 3, 1, 2 }); + rpc.sendChar('∫', Character.valueOf('å'), "aBcD".toCharArray()); + rpc.sendInt(Integer.MAX_VALUE, Integer.valueOf(0), new int[] { 5, 7 }); + rpc.sendLong(577431841358l, Long.valueOf(0), new long[] { + -57841235865l, 57 }); + rpc.sendFloat(3.14159f, Float.valueOf(Math.nextUp(1)), new float[] { + 57, 0, -12 }); + rpc.sendDouble(Math.PI, Double.valueOf(-Math.E), new double[] { + Double.MAX_VALUE, Double.MIN_VALUE }); + rpc.sendString("This is a tesing string ‡"); + rpc.sendConnector(this); + rpc.sendBean( + new ComplexTestBean(new SimpleTestBean(0), + new SimpleTestBean(1), Arrays.asList( + new SimpleTestBean(3), new SimpleTestBean(4)), + 5), new SimpleTestBean(6), + new SimpleTestBean[] { new SimpleTestBean(7) }); + rpc.sendNull("Not null", null); + rpc.sendNestedArray(new int[][] { { 5 }, { 7 } }, + new SimpleTestBean[][] { { new SimpleTestBean(4), + new SimpleTestBean(2) } }); + rpc.sendList(Arrays.asList(5, 8, -234), Arrays.<Connector> asList(this, + testExtension), Arrays.asList(new SimpleTestBean(234), + new SimpleTestBean(-568))); + // Disabled because of #8861 + // rpc.sendArrayList( + // Arrays.asList(new int[] { 1, 2 }, new int[] { 3, 4 }), + // Arrays.asList(new Integer[] { 5, 6 }, new Integer[] { 7, 8 }), + // Collections + // .singletonList(new SimpleTestBean[] { new SimpleTestBean( + // 7) })); + // Disabled because of #8861 + // rpc.sendListArray( + // new List[] { Arrays.asList(1, 2), Arrays.asList(3, 4) }, + // new List[] { Collections.singletonList(new SimpleTestBean(-1)) }); + rpc.sendSet(new HashSet<Integer>(Arrays.asList(4, 7, 12)), Collections + .singleton((Connector) this), new HashSet<SimpleTestBean>( + Arrays.asList(new SimpleTestBean(1), new SimpleTestBean(2)))); + + rpc.sendMap(new HashMap<String, SimpleTestBean>() { + { + put("1", new SimpleTestBean(1)); + put("2", new SimpleTestBean(2)); + } + }, new HashMap<Connector, Boolean>() { + { + put(testExtension, true); + put(getRoot(), false); + } + }, new HashMap<Integer, Connector>() { + { + put(5, testExtension); + put(10, getRoot()); + } + }, new HashMap<SimpleTestBean, SimpleTestBean>() { + { + put(new SimpleTestBean(5), new SimpleTestBean(-5)); + put(new SimpleTestBean(-4), new SimpleTestBean(4)); + } + }); + rpc.sendWrappedGenerics(new HashMap<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>>() { + { + put(Collections.singleton(new SimpleTestBean(42)), + new HashMap<Integer, List<SimpleTestBean>>() { + { + put(1, Arrays.asList(new SimpleTestBean(1), + new SimpleTestBean(3))); + } + }); + } + }); + + testExtension.registerRpc(new SerializerTestRpc() { + public void sendBoolean(boolean value, Boolean boxedValue, + boolean[] array) { + log.log("sendBoolean: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendByte(byte value, Byte boxedValue, byte[] array) { + log.log("sendByte: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendChar(char value, Character boxedValue, char[] array) { + log.log("sendChar: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendInt(int value, Integer boxedValue, int[] array) { + log.log("sendInt: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendLong(long value, Long boxedValue, long[] array) { + log.log("sendLong: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendFloat(float value, Float boxedValue, float[] array) { + log.log("sendFloat: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendDouble(double value, Double boxedValue, + double[] array) { + log.log("sendDouble: " + value + ", " + boxedValue + ", " + + Arrays.toString(array)); + } + + public void sendString(String value) { + log.log("sendString: " + value); + } + + public void sendConnector(Connector connector) { + log.log("sendConnector: " + connector.getClass().getName()); + } + + public void sendBean(ComplexTestBean complexBean, + SimpleTestBean simpleBean, SimpleTestBean[] array) { + log.log("sendBean: " + complexBean + ", " + simpleBean + ", " + + Arrays.toString(array)); + } + + public void sendNull(String value1, String value2) { + log.log("sendNull: " + value1 + ", " + value2); + } + + public void sendNestedArray(int[][] nestedIntArray, + SimpleTestBean[][] nestedBeanArray) { + log.log("sendNestedArray: " + + Arrays.deepToString(nestedIntArray) + ", " + + Arrays.deepToString(nestedBeanArray)); + } + + public void sendList(List<Integer> intList, + List<Connector> connectorList, List<SimpleTestBean> beanList) { + log.log("sendList: " + intList + ", " + + connectorCollectionToString(connectorList) + ", " + + beanList); + } + + private String connectorCollectionToString( + Collection<Connector> collection) { + StringBuilder sb = new StringBuilder(); + + for (Connector connector : collection) { + if (sb.length() != 0) { + sb.append(", "); + } + sb.append(connector.getClass()); + } + + String string = sb.toString(); + return string; + } + + public void sendArrayList(List<int[]> primitiveArrayList, + List<Integer[]> objectArrayList, + List<SimpleTestBean[]> beanArrayList) { + log.log("sendArrayList: " + primitiveArrayList + ", " + + objectArrayList + ", " + beanArrayList); + } + + public void sendListArray(List<Integer>[] objectListArray, + List<SimpleTestBean>[] beanListArray) { + log.log("sendArrayList: " + Arrays.toString(objectListArray) + + ", " + Arrays.toString(beanListArray)); + } + + public void sendSet(Set<Integer> intSet, + Set<Connector> connectorSet, Set<SimpleTestBean> beanSet) { + log.log("sendSet: " + intSet + ", " + + connectorCollectionToString(connectorSet) + ", " + + beanSet); + } + + public void sendMap(Map<String, SimpleTestBean> stringMap, + Map<Connector, Boolean> connectorMap, + Map<Integer, Connector> intMap, + Map<SimpleTestBean, SimpleTestBean> beanMap) { + StringBuilder sb = new StringBuilder(); + for (Entry<Connector, Boolean> entry : connectorMap.entrySet()) { + if (sb.length() == 0) { + sb.append('['); + } else { + sb.append(", "); + } + sb.append(entry.getKey().getClass().getName()); + sb.append('='); + sb.append(entry.getValue()); + } + sb.append(']'); + String connectorMapString = sb.toString(); + + sb = new StringBuilder(); + for (Entry<Integer, Connector> entry : intMap.entrySet()) { + if (sb.length() == 0) { + sb.append('['); + } else { + sb.append(", "); + } + sb.append(entry.getKey()); + sb.append('='); + sb.append(entry.getValue().getClass().getName()); + } + sb.append(']'); + String intMapString = sb.toString(); + + log.log("sendMap: " + stringMap + ", " + connectorMapString + + ", " + intMapString + ", " + beanMap); + } + + public void sendWrappedGenerics( + Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> generics) { + log.log("sendWrappedGenerics: " + generics.toString()); + } + + }); + } + + @Override + protected String getTestDescription() { + return "Test for lots of different cases of encoding and decoding variuos data types"; + } + + @Override + protected Integer getTicketNumber() { + return Integer.valueOf(8655); + } + +} diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java b/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java new file mode 100644 index 0000000000..e465ee2624 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/widgetset/client/ComplexTestBean.java @@ -0,0 +1,70 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.widgetset.client; + +import java.util.List; + +import com.vaadin.terminal.gwt.client.communication.SharedState; + +@SuppressWarnings("javadoc") +public class ComplexTestBean extends SharedState { + private SimpleTestBean innerBean1; + private SimpleTestBean innerBean2; + private List<SimpleTestBean> innerBeanCollection; + private int privimite; + + public ComplexTestBean() { + // Default + } + + public ComplexTestBean(SimpleTestBean innerBean1, + SimpleTestBean innerBean2, + List<SimpleTestBean> innerBeanCollection, int privimite) { + this.innerBean1 = innerBean1; + this.innerBean2 = innerBean2; + this.innerBeanCollection = innerBeanCollection; + this.privimite = privimite; + } + + public SimpleTestBean getInnerBean1() { + return innerBean1; + } + + public void setInnerBean1(SimpleTestBean innerBean) { + innerBean1 = innerBean; + } + + public SimpleTestBean getInnerBean2() { + return innerBean2; + } + + public void setInnerBean2(SimpleTestBean innerBean2) { + this.innerBean2 = innerBean2; + } + + public List<SimpleTestBean> getInnerBeanCollection() { + return innerBeanCollection; + } + + public void setInnerBeanCollection(List<SimpleTestBean> innerBeanCollection) { + this.innerBeanCollection = innerBeanCollection; + } + + public int getPrivimite() { + return privimite; + } + + public void setPrivimite(int privimite) { + this.privimite = privimite; + } + + @Override + public String toString() { + return "ComplexTestBean [innerBean1=" + innerBean1 + ", innerBean2=" + + innerBean2 + ", innerBeanCollection=" + innerBeanCollection + + ", privimite=" + privimite + "]"; + } + +} diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java new file mode 100644 index 0000000000..72bfbe285a --- /dev/null +++ b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestConnector.java @@ -0,0 +1,227 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.widgetset.client; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.vaadin.terminal.gwt.client.Connector; +import com.vaadin.terminal.gwt.client.communication.RpcProxy; +import com.vaadin.terminal.gwt.client.communication.StateChangeEvent; +import com.vaadin.terminal.gwt.client.extensions.AbstractExtensionConnector; +import com.vaadin.terminal.gwt.client.ui.Connect; +import com.vaadin.tests.widgetset.server.SerializerTestExtension; + +@Connect(SerializerTestExtension.class) +public class SerializerTestConnector extends AbstractExtensionConnector { + + private SerializerTestRpc rpc = RpcProxy.create(SerializerTestRpc.class, + this); + + public SerializerTestConnector() { + registerRpc(SerializerTestRpc.class, new SerializerTestRpc() { + public void sendWrappedGenerics( + Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> generics) { + Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> updated = new HashMap<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>>(); + + SimpleTestBean firstValue = generics.values().iterator().next() + .get(Integer.valueOf(1)).get(0); + Set<SimpleTestBean> key = new HashSet<SimpleTestBean>(Arrays + .asList(firstValue)); + + Map<Integer, List<SimpleTestBean>> value = new HashMap<Integer, List<SimpleTestBean>>(); + Set<SimpleTestBean> firstKeyValue = generics.keySet() + .iterator().next(); + value.put(Integer.valueOf(1), new ArrayList<SimpleTestBean>( + firstKeyValue)); + + updated.put(key, value); + + rpc.sendWrappedGenerics(updated); + } + + public void sendString(String value) { + char[] chars = value.toCharArray(); + Arrays.sort(chars); + rpc.sendString(new String(chars)); + } + + public void sendSet(Set<Integer> intSet, + Set<Connector> connectorSet, Set<SimpleTestBean> beanSet) { + + beanSet.iterator().next().setValue(intSet.size()); + Set<Integer> updatedIntSet = new HashSet<Integer>(); + + for (Integer integer : intSet) { + updatedIntSet.add(Integer.valueOf(-integer.intValue())); + } + rpc.sendSet(updatedIntSet, + Collections.singleton(getRootConnector()), beanSet); + } + + public void sendNestedArray(int[][] nestedIntArray, + SimpleTestBean[][] nestedBeanArray) { + rpc.sendNestedArray(new int[][] { { nestedIntArray[1][0], + nestedIntArray[0][0] } }, new SimpleTestBean[][] { + { nestedBeanArray[0][1] }, { nestedBeanArray[0][0] } }); + } + + public void sendMap(Map<String, SimpleTestBean> stringMap, + Map<Connector, Boolean> connectorMap, + Map<Integer, Connector> intMap, + Map<SimpleTestBean, SimpleTestBean> beanMap) { + Map<SimpleTestBean, SimpleTestBean> updatedBeanMap = new HashMap<SimpleTestBean, SimpleTestBean>(); + for (Entry<SimpleTestBean, SimpleTestBean> entry : beanMap + .entrySet()) { + updatedBeanMap.put(entry.getValue(), entry.getKey()); + } + + rpc.sendMap(Collections.singletonMap("a", stringMap.get("b")), + Collections.singletonMap(getThisConnector(), + connectorMap.get(getRootConnector())), + Collections.singletonMap( + Integer.valueOf(stringMap.size()), + getThisConnector()), updatedBeanMap); + } + + public void sendLong(long value, Long boxedValue, long[] array) { + rpc.sendLong(array[0], Long.valueOf(value), new long[] { + array[1], boxedValue.longValue() }); + } + + public void sendList(List<Integer> intList, + List<Connector> connectorList, List<SimpleTestBean> beanList) { + Collections.sort(intList); + Collections.reverse(beanList); + rpc.sendList(intList, + Arrays.asList(getThisConnector(), getRootConnector()), + beanList); + } + + public void sendInt(int value, Integer boxedValue, int[] array) { + rpc.sendInt(array.length, Integer.valueOf(array[0]), new int[] { + value, boxedValue.intValue() }); + } + + public void sendFloat(float value, Float boxedValue, float[] array) { + Arrays.sort(array); + rpc.sendFloat(boxedValue.floatValue(), Float.valueOf(value), + array); + } + + public void sendDouble(double value, Double boxedValue, + double[] array) { + rpc.sendDouble(value + boxedValue.doubleValue(), + Double.valueOf(value - boxedValue.doubleValue()), + new double[] { array.length, array[0], array[1] }); + } + + public void sendConnector(Connector connector) { + rpc.sendConnector(getThisConnector()); + } + + public void sendChar(char value, Character boxedValue, char[] array) { + rpc.sendChar(Character.toUpperCase(boxedValue.charValue()), + Character.valueOf(value), new String(array) + .toLowerCase().toCharArray()); + } + + public void sendByte(byte value, Byte boxedValue, byte[] array) { + // There will most certainly be a bug that is not discovered + // because this particular method doesn't do anything with it's + // values... + rpc.sendByte(value, boxedValue, array); + } + + public void sendBoolean(boolean value, Boolean boxedValue, + boolean[] array) { + boolean[] inverseArray = new boolean[array.length]; + for (int i = 0; i < array.length; i++) { + inverseArray[i] = !array[i]; + } + rpc.sendBoolean(boxedValue == Boolean.TRUE, + Boolean.valueOf(!value), inverseArray); + } + + public void sendBean(ComplexTestBean complexBean, + SimpleTestBean simpleBean, SimpleTestBean[] array) { + SimpleTestBean updatedSimpleBean = new SimpleTestBean(); + updatedSimpleBean.setValue(complexBean.getInnerBean1() + .getValue()); + + ComplexTestBean updatedComplexBean = new ComplexTestBean(); + updatedComplexBean.setInnerBean1(complexBean.getInnerBean2()); + updatedComplexBean.setInnerBean2(complexBean + .getInnerBeanCollection().get(0)); + updatedComplexBean.setInnerBeanCollection(Arrays.asList( + simpleBean, updatedSimpleBean)); + updatedComplexBean.setPrivimite(complexBean.getPrivimite() + 1); + + ArrayList<SimpleTestBean> arrayList = new ArrayList<SimpleTestBean>( + Arrays.asList(array)); + Collections.reverse(arrayList); + + rpc.sendBean(updatedComplexBean, updatedSimpleBean, + arrayList.toArray(new SimpleTestBean[array.length])); + } + + public void sendArrayList(List<int[]> primitiveArrayList, + List<Integer[]> objectArrayList, + List<SimpleTestBean[]> beanArrayList) { + Collections.reverse(beanArrayList); + List<Integer[]> updatedObjectArrayList = new ArrayList<Integer[]>(); + for (int[] array : primitiveArrayList) { + updatedObjectArrayList.add(new Integer[] { + Integer.valueOf(array.length), + Integer.valueOf(array[0]) }); + } + + rpc.sendArrayList(Arrays.asList( + new int[] { primitiveArrayList.size() }, + new int[] { objectArrayList.get(0).length }), + updatedObjectArrayList, beanArrayList); + } + + public void sendNull(String value1, String value2) { + rpc.sendNull(value2, value1); + } + + public void sendListArray(List<Integer>[] objectListArray, + List<SimpleTestBean>[] beanListArray) { + rpc.sendListArray(new List[] { objectListArray[1], + objectListArray[0] }, new List[] { Collections + .singletonList(beanListArray[0].get(0)) }); + } + }); + } + + private Connector getRootConnector() { + return getConnection().getRootConnector(); + } + + private Connector getThisConnector() { + // Cast to Connector for use in e.g. Collections.singleton() to get a + // Set<Connector> + return this; + } + + @Override + public ComplexTestBean getState() { + return (ComplexTestBean) super.getState(); + } + + @Override + public void onStateChanged(StateChangeEvent stateChangeEvent) { + // TODO do something clever + } + +} diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java new file mode 100644 index 0000000000..5b73e1d34d --- /dev/null +++ b/tests/testbench/com/vaadin/tests/widgetset/client/SerializerTestRpc.java @@ -0,0 +1,64 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.widgetset.client; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.vaadin.terminal.gwt.client.Connector; +import com.vaadin.terminal.gwt.client.communication.ClientRpc; +import com.vaadin.terminal.gwt.client.communication.ServerRpc; + +@SuppressWarnings("javadoc") +public interface SerializerTestRpc extends ServerRpc, ClientRpc { + public void sendBoolean(boolean value, Boolean boxedValue, boolean[] array); + + public void sendByte(byte value, Byte boxedValue, byte[] array); + + public void sendChar(char value, Character boxedValue, char[] array); + + public void sendInt(int value, Integer boxedValue, int[] array); + + public void sendLong(long value, Long boxedValue, long[] array); + + public void sendFloat(float value, Float boxedValue, float[] array); + + public void sendDouble(double value, Double boxedValue, double[] array); + + public void sendString(String value); + + public void sendConnector(Connector connector); + + public void sendBean(ComplexTestBean complexBean, + SimpleTestBean simpleBean, SimpleTestBean[] array); + + public void sendNull(String value1, String value2); + + public void sendNestedArray(int[][] nestedIntArray, + SimpleTestBean[][] nestedBeanArray); + + public void sendList(List<Integer> intList, List<Connector> connectorList, + List<SimpleTestBean> beanList); + + public void sendArrayList(List<int[]> primitiveArrayList, + List<Integer[]> objectArrayList, + List<SimpleTestBean[]> beanArrayList); + + public void sendListArray(List<Integer>[] objectListArray, + List<SimpleTestBean>[] beanListArray); + + public void sendSet(Set<Integer> intSet, Set<Connector> connectorSet, + Set<SimpleTestBean> beanSet); + + public void sendMap(Map<String, SimpleTestBean> stringMap, + Map<Connector, Boolean> connectorMap, + Map<Integer, Connector> intMap, + Map<SimpleTestBean, SimpleTestBean> beanMap); + + public void sendWrappedGenerics( + Map<Set<SimpleTestBean>, Map<Integer, List<SimpleTestBean>>> generics); + +} diff --git a/tests/testbench/com/vaadin/tests/widgetset/client/SimpleTestBean.java b/tests/testbench/com/vaadin/tests/widgetset/client/SimpleTestBean.java new file mode 100644 index 0000000000..43ad51e758 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/widgetset/client/SimpleTestBean.java @@ -0,0 +1,38 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.widgetset.client; + +import java.io.Serializable; + +public class SimpleTestBean implements Serializable { + private int value; + + public SimpleTestBean() { + this(0); + } + + public SimpleTestBean(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + @Override + public String toString() { + return "SimpleTestBean(" + value + ")"; + } + + @Override + public int hashCode() { + // Implement hash code to get consistent HashSet.toString + return value; + } +}
\ No newline at end of file diff --git a/tests/testbench/com/vaadin/tests/widgetset/server/SerializerTestExtension.java b/tests/testbench/com/vaadin/tests/widgetset/server/SerializerTestExtension.java new file mode 100644 index 0000000000..99c05e8f76 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/widgetset/server/SerializerTestExtension.java @@ -0,0 +1,22 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.widgetset.server; + +import com.vaadin.terminal.AbstractExtension; +import com.vaadin.tests.widgetset.client.ComplexTestBean; +import com.vaadin.tests.widgetset.client.SerializerTestRpc; + +public class SerializerTestExtension extends AbstractExtension { + + @Override + public ComplexTestBean getState() { + return (ComplexTestBean) super.getState(); + } + + public void registerRpc(SerializerTestRpc rpc) { + super.registerRpc(rpc); + } + +} |