You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2004/11/02 15:34:24 UTC

svn commit: rev 56376 - incubator/directory/seda/trunk/src/test/org/apache/seda/examples

Author: trustin
Date: Tue Nov  2 06:34:23 2004
New Revision: 56376

Modified:
   incubator/directory/seda/trunk/src/test/org/apache/seda/examples/DiscardProtocolProviderTest.java
   incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java
Log:
Added UDP test cases for Echo and Discard.

UDP tests don't work for now because UDP I/O events doesn't generate Connect and Disconnect events which make encoder manager and decoder manager ready for the client key.

Modified: incubator/directory/seda/trunk/src/test/org/apache/seda/examples/DiscardProtocolProviderTest.java
==============================================================================
--- incubator/directory/seda/trunk/src/test/org/apache/seda/examples/DiscardProtocolProviderTest.java	(original)
+++ incubator/directory/seda/trunk/src/test/org/apache/seda/examples/DiscardProtocolProviderTest.java	Tue Nov  2 06:34:23 2004
@@ -19,8 +19,10 @@
 
 import java.io.InputStream;
 import java.io.OutputStream;
-
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.SocketTimeoutException;
 
@@ -41,7 +43,7 @@
         super(new DiscardProtocolProvider());
     }
 
-    public void testDiscardProtocol() throws Exception
+    public void testTCP() throws Exception
     {
         Socket socket = new Socket(InetAddress.getLocalHost(), port);
         socket.setSoTimeout(100);
@@ -71,6 +73,34 @@
 
         in.close();
         out.close();
+        socket.close();
+    }
+
+    public void testUDP() throws Exception
+    {
+    	DatagramSocket socket = new DatagramSocket();
+
+        byte[] data = new byte[512];
+        byte value = (byte) 0;
+
+        for (int i = data.length - 1; i >= 0; i--)
+        {
+            data[i] = (byte) i;
+        }
+
+    	socket.send(new DatagramPacket(data, 0, data.length, new InetSocketAddress("localhost", port)));
+    	
+
+    	socket.setSoTimeout(100);
+        try
+        {
+        	socket.receive(new DatagramPacket(data, 0, data.length));
+            fail("Discard protocol provider returns data.");
+        }
+        catch (SocketTimeoutException e)
+        {
+            // it is ok because there should be no data returned
+        }
         socket.close();
     }
 }

Modified: incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java
==============================================================================
--- incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java	(original)
+++ incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java	Tue Nov  2 06:34:23 2004
@@ -21,6 +21,7 @@
 import java.net.SocketTimeoutException;
 
 import org.apache.commons.net.EchoTCPClient;
+import org.apache.commons.net.EchoUDPClient;
 import org.apache.seda.ProtocolTestCase;
 
 
@@ -38,7 +39,7 @@
         super(new EchoProtocolProvider());
     }
 
-    public void testEchoProtocol() throws Exception
+    public void testTCP() throws Exception
     {
         EchoTCPClient client = new EchoTCPClient();
         client.connect(InetAddress.getLocalHost(), port);
@@ -88,10 +89,44 @@
         client.disconnect();
     }
 
-	/**
-	 * @param writeBuf
-	 * @param i
-	 */
+    public void testUDP() throws Exception
+    {
+    	EchoUDPClient client = new EchoUDPClient();
+        client.open();
+        client.setSoTimeout(3000);
+
+        byte[] writeBuf = new byte[16];
+
+        for (int i = 0; i < 10; i++)
+        {
+            fillWriteBuffer(writeBuf, i);
+            client.send(writeBuf, writeBuf.length, InetAddress.getLocalHost(), port);
+        }
+
+        byte[] readBuf = new byte[writeBuf.length];
+
+        for (int i = 0; i < 10; i++)
+        {
+            fillWriteBuffer(writeBuf, i);
+
+            assertEquals(readBuf.length, client.receive(readBuf, readBuf.length));
+            assertEquals(writeBuf, readBuf);
+        }
+
+        client.setSoTimeout(100);
+
+        try
+        {
+            client.receive(readBuf);
+            fail("Unexpected incoming data.");
+        }
+        catch (SocketTimeoutException e)
+        {
+        }
+
+        client.close();
+    }
+
 	private void fillWriteBuffer(byte[] writeBuf, int i) {
 		for (int j = writeBuf.length - 1; j >= 0; j--)
 		{