jochen 2005/05/22 23:11:15
Modified: src/test/org/apache/xmlrpc/test Tag: b20050512_streaming BaseTest.java Log: Added unit test for serializable objects. Revision Changes Path No revision No revision 1.1.2.4 +44 -0 ws-xmlrpc/src/test/org/apache/xmlrpc/test/Attic/BaseTest.java Index: BaseTest.java =================================================================== RCS file: /home/cvs/ws-xmlrpc/src/test/org/apache/xmlrpc/test/Attic/BaseTest.java,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- BaseTest.java 21 May 2005 21:23:51 -0000 1.1.2.3 +++ BaseTest.java 23 May 2005 06:11:14 -0000 1.1.2.4 @@ -17,12 +17,15 @@ import java.io.IOException; import java.io.StringReader; +import java.text.DateFormat; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Arrays; +import java.util.Calendar; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.TimeZone; import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilderFactory; @@ -257,6 +260,14 @@ return result; } } + + /** Returns the calendar value in milliseconds. + * @param pCal Calendar object + * @return <code>pCal.getTime().getTime()</code>. + */ + public long serializableParam(Calendar pCal) { + return pCal.getTime().getTime(); + } } protected XmlRpcHandlerMapping getHandlerMapping() throws IOException, XmlRpcException { @@ -787,4 +798,37 @@ } assertTrue(ok); } + + /** Test, whether we can invoke a method, passing an instance of + * [EMAIL PROTECTED] java.io.Serializable} as an instance. + * @throws Exception The test failed. + */ + public void testSerializableParam() throws Exception { + for (int i = 0; i < providers.length; i++) { + testSerializableParam(providers[i]); + } + } + + private void testSerializableParam(ClientProvider pProvider) throws Exception { + final String methodName = "Remote.serializableParam"; + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + cal.set(Calendar.YEAR, 2005); + cal.set(Calendar.MONTH, 5); + cal.set(Calendar.DAY_OF_MONTH, 23); + cal.set(Calendar.HOUR_OF_DAY, 8); + cal.set(Calendar.MINUTE, 4); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 5); + final Object[] params = new Object[]{cal}; + final XmlRpcClient client = pProvider.getClient(); + Object result = client.execute(getExConfig(pProvider), methodName, params); + assertEquals(new Long(cal.getTime().getTime()), result); + boolean ok = false; + try { + client.execute(getConfig(pProvider), methodName, params); + } catch (XmlRpcExtensionException e) { + ok = true; + } + assertTrue(ok); + } }