Merge "Copyright"
[packetcable.git] / packetcable-driver / src / test / java / org / umu / cops / stack / TestCOPSServer.java
1 package org.umu.cops.stack;
2
3 import org.junit.Assert;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
6
7 import java.io.IOException;
8 import java.net.ServerSocket;
9 import java.net.Socket;
10 import java.util.ArrayList;
11 import java.util.List;
12
13 /**
14  * Server used to test client/server socket communications.
15  */
16 public class TestCOPSServer extends Thread {
17
18     private final static Logger logger = LoggerFactory.getLogger(TestCOPSServer.class);
19     private final ServerSocket serverSocket;
20     final List<COPSMsg> copsMsgs = new ArrayList<>();
21
22     public TestCOPSServer(final int port) throws IOException {
23         serverSocket = new ServerSocket(port);
24         Assert.assertTrue(serverSocket.isBound());
25     }
26
27     public void close() throws IOException {
28         this.interrupt();
29         serverSocket.close();
30     }
31
32     public void run() {
33         try {
34             final Socket socket = serverSocket.accept();
35             final COPSMsg copsMsg = COPSTransceiver.receiveMsg(socket);
36             logger.info("Read value = " + copsMsg);
37             copsMsgs.add(copsMsg);
38             socket.close();
39         } catch (Exception e) {
40             logger.error("Error processing message", e);
41         }
42
43     }
44 }