From: felix Date: Sun, 20 May 2007 13:51:28 +0000 (+0000) Subject: Test Server Mockup neu aufgenommen X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=e66d3c2dae9da085cea66a096b44d59e99401ac0;p=bytewurf.git Test Server Mockup neu aufgenommen git-svn-id: https://www.internetallee.de/svn/bytewurf@47 a944a559-bf0e-0410-8ddc-85264b264b6c --- diff --git a/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/AllTests.java b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/AllTests.java index 972dfa4..c011f6c 100644 --- a/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/AllTests.java +++ b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/AllTests.java @@ -21,6 +21,7 @@ public class AllTests { suite.addTestSuite(NetzdosenMockupTest.class); suite.addTestSuite(CommandTest.class); suite.addTestSuite(HostConfigTest.class); + suite.addTestSuite(NetzdosenServerMockup.class); //$JUnit-END$ return suite; } diff --git a/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerHandler.java b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerHandler.java new file mode 100644 index 0000000..f16047c --- /dev/null +++ b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerHandler.java @@ -0,0 +1,19 @@ +/* + * Created on 20.05.2007 + * + * To change this generated comment go to + * Window>Preferences>Java>Code Generation>Code Template + */ +package de.bytewurf.projekte.netzschalter; + +import java.io.IOException; +import java.net.Socket; + +/** + * @author felix + */ +public interface NetzdosenServerHandler { + + public void handleSocket(Socket socket) throws IOException; + +} diff --git a/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerMockup.java b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerMockup.java new file mode 100644 index 0000000..0aad58b --- /dev/null +++ b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerMockup.java @@ -0,0 +1,56 @@ +/* + * Created on 18.05.2007 + * + * To change this generated comment go to + * Window>Preferences>Java>Code Generation>Code Template + */ +package de.bytewurf.projekte.netzschalter; + +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * @author felix + */ +public class NetzdosenServerMockup { + private ServerSocket serverSocket; + + private NetzdosenServerHandler handler; + + private ServerThread serverThread; + + private boolean stop = false; + + public void stopServer() { + stop = false; + serverThread.notify(); + } + + public NetzdosenServerMockup(int portNumber, NetzdosenServerHandler handler) + throws IOException { + serverSocket = new ServerSocket(portNumber); + this.handler = handler; + serverThread = new ServerThread(); + serverThread.start(); + + } + + class ServerThread extends Thread { + + public void run() { + try { + Socket socket; + while (!stop) { + socket = serverSocket.accept(); + if (socket != null) + handler.handleSocket(socket); + else + stop = true; + } + } catch (IOException e) { + LogMediator.getInstance(this.getClass()).log(e.toString()); + } + } + } +} diff --git a/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerMockupTest.java b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerMockupTest.java new file mode 100644 index 0000000..384d4b7 --- /dev/null +++ b/projekte/netzschalter/test/de/bytewurf/projekte/netzschalter/NetzdosenServerMockupTest.java @@ -0,0 +1,54 @@ +/* + * Created on 20.05.2007 + * + * To change this generated comment go to + * Window>Preferences>Java>Code Generation>Code Template + */ +package de.bytewurf.projekte.netzschalter; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetAddress; +import java.net.Socket; +import java.net.UnknownHostException; + +import junit.framework.TestCase; + +/** + * @author felix + */ +public class NetzdosenServerMockupTest extends TestCase { + + private NetzdosenServerMockup echoServer; + + protected void setUp() throws Exception { + echoServer = new NetzdosenServerMockup(NetzdoseKonstanten.XPORT_PORT, + new SimpleEchoHandler()); + } + + public void testEchoServer() throws UnknownHostException, IOException, + InterruptedException { + Socket client = new Socket(InetAddress.getLocalHost(), + NetzdoseKonstanten.XPORT_PORT); + assertNotNull(client); + InputStream input = client.getInputStream(); + OutputStream output = client.getOutputStream(); + assertNotNull(input); + assertNotNull(output); + byte[] testData = new byte[] { 10, 20, 30 }; + output.write(testData); + int counter = 0; + while ((input.available() <= 0) && (counter++ < 100)) + Thread.sleep(20); + byte[] checkData = new byte[3]; + assertEquals(3, input.available()); + input.read(checkData); + for (int i=0;iPreferences>Java>Code Generation>Code Template + */ +package de.bytewurf.projekte.netzschalter; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.Socket; + +/** + * @author felix + */ +public class SimpleEchoHandler implements NetzdosenServerHandler { + + public void handleSocket(Socket socket) throws IOException { + InputStream input = null; + OutputStream output = null; + try { + input = socket.getInputStream(); + output = socket.getOutputStream(); + int data; + while ((data = input.available()) > 0) { + byte[] dataBytes = new byte[data]; + input.read(dataBytes); + output.write(dataBytes); + System.out.println("Wrote " + data + " bytes "); + } + } catch (IOException e) { + LogMediator.getInstance(this.getClass()).log(e.toString()); + } finally { + if (input != null) { + input.close(); + } + if (output != null) { + output.close(); + } + } + } + +}