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/10/31 04:57:25 UTC

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

Author: trustin
Date: Sat Oct 30 20:57:24 2004
New Revision: 56116

Added:
   incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java   (contents, props changed)
Modified:
   incubator/directory/seda/trunk/src/test/org/apache/seda/examples/DiscardProtocolProviderTest.java
Log:
* DiscardProtocolProviderTest now fails if there are any incoming data
* Added: EchoProtocolProviderTest

Note: These test cases fail for now.


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	Sat Oct 30 20:57:24 2004
@@ -17,9 +17,13 @@
 
 package org.apache.seda.examples;
 
+import java.io.InputStream;
+import java.io.OutputStream;
+
 import java.net.InetAddress;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
 
-import org.apache.commons.net.DiscardTCPClient;
 import org.apache.seda.ProtocolTestCase;
 
 
@@ -39,19 +43,34 @@
 
     public void testDiscardProtocol() throws Exception
     {
-        DiscardTCPClient client = new DiscardTCPClient();
-        client.connect(InetAddress.getLocalHost(), port);
-        
+        Socket socket = new Socket(InetAddress.getLocalHost(), port);
+        socket.setSoTimeout(100);
+
+        InputStream in = socket.getInputStream();
+        OutputStream out = socket.getOutputStream();
+
         byte[] data = new byte[512];
-        byte value= (byte) 0;
-        for (int i = 0; i < 10; i++) {
-        	for (int j = data.length-1; j >= 0; j--) {
-        		data[j] = (byte) j;
-        	}
-        	
-    		client.getOutputStream().write(data);
+        byte value = (byte) 0;
+
+        for (int i = data.length - 1; i >= 0; i--)
+        {
+            data[i] = (byte) i;
         }
-        
-        client.disconnect();
+
+        out.write(data);
+
+        try
+        {
+            if (in.read() != 0)
+                fail("Discard protocol provider returns data.");
+        }
+        catch (SocketTimeoutException e)
+        {
+            // it is ok because there should be no data returned
+        }
+
+        in.close();
+        out.close();
+        socket.close();
     }
 }

Added: incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java
==============================================================================
--- (empty file)
+++ incubator/directory/seda/trunk/src/test/org/apache/seda/examples/EchoProtocolProviderTest.java	Sat Oct 30 20:57:24 2004
@@ -0,0 +1,70 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+
+package org.apache.seda.examples;
+
+import java.net.InetAddress;
+import java.util.Arrays;
+
+import org.apache.commons.net.EchoTCPClient;
+import org.apache.seda.ProtocolTestCase;
+
+
+/**
+ * Document me.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org"> Apache Directory
+ *         Project</a>
+ * @version $Rev$
+ */
+public class EchoProtocolProviderTest extends ProtocolTestCase
+{
+    public EchoProtocolProviderTest()
+    {
+        super(new EchoProtocolProvider());
+    }
+
+    public void testEchoProtocol() throws Exception
+    {
+        EchoTCPClient client = new EchoTCPClient();
+        client.connect(InetAddress.getLocalHost(), port);
+        client.setSoTimeout(3000);
+        
+        byte[] writeBuf = new byte[512];
+        byte[] readBuf = new byte[writeBuf.length];
+        byte value= (byte) 0;
+        for (int i = 0; i < 10; i++) {
+        	for (int j = writeBuf.length-1; j >= 0; j--) {
+        		writeBuf[j] = (byte) j;
+        	}
+        	
+    		client.getOutputStream().write(writeBuf);
+    		
+    		int readBytes = 0;
+    		while (readBytes < readBuf.length) {
+        		int nBytes = client.getInputStream().read(readBuf, readBytes, readBuf.length - readBytes);
+        		if (nBytes < 0)
+        			fail("Unexpected disconnection.");
+        		readBytes += nBytes;
+    		}
+    		
+    		assertTrue(Arrays.equals(writeBuf, readBuf));
+        }
+        
+        client.disconnect();
+    }
+}