import junit.framework.*; import java.io.*; import java.net.*; public class BoundedThreadedServerTestCase extends TestCase { ThreadedServer tserver; RemoteGetFileSyncHandler remoteHandler; //------------------------------------------------------------- // Constructor //------------------------------------------------------------- public BoundedThreadedServerTestCase( String name ) { super(name); } //------------------------------------------------------------- // Setup //------------------------------------------------------------- public void setUp() { tserver = new ThreadedServer( 23313 ); remoteHandler = new RemoteGetFileSyncHandler( HandlerOrder.NO_PREFERENCE ); tserver.attach( remoteHandler ); } //----------------------------------------------------------------------------- // testDetach //----------------------------------------------------------------------------- public void testDetach() { assertTrue( tserver.getSize() == 1 ); tserver.detach( remoteHandler ); assertTrue( tserver.getSize() == 0 ); } //----------------------------------------------------- // copySrcToBuf //----------------------------------------------------- private static void copySrcToBuf(Reader src, StringBuffer out) throws java.io.IOException { char[] tempBuf = new char[1024]; int charsRead = 1; do { charsRead = src.read(tempBuf, 0, 1024); if (charsRead > 0) { out.append(tempBuf, 0, charsRead); } } while (charsRead >= 0); } //------------------------------------------------------------- // testOutput // This test sends a request for the Threaded server and // checks that its output is as expected //------------------------------------------------------------- public void testOutput() { Runtime runtime = Runtime.getRuntime(); StringBuffer out1 = new StringBuffer(1000); StringBuffer out2 = new StringBuffer(1000); StringBuffer out3 = new StringBuffer(1000); try { Process p = runtime.exec("java SlowServer"); Process p2 = runtime.exec("java BoundedThreadedPageProxy"); Thread.sleep( 3000 ); UrlThread t1 = new UrlThread( "http://localhost:23313/remoteGetFile/localhost:8080/fast", out1); t1.start(); try { t1.join(); } catch( InterruptedException e ) { assertTrue( false ); } System.out.println( "got Response " + out1 ); assertTrue( out1.toString().equals( "(fast)" )); //in.close(); p.destroy(); p2.destroy(); } catch (Exception e) { assertTrue( false ); System.out.println("oops something failed!\n"); } } //------------------------------------------------------------- // suite //------------------------------------------------------------- public static Test suite() { return new TestSuite( BoundedThreadedServerTestCase.class ); } //------------------------------------------------------------- // main //------------------------------------------------------------- public static void main( String args[] ) { junit.textui.TestRunner.run( suite() ); } }