1 package org.umu.cops.stack;
3 import org.junit.Assert;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
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;
14 * Server used to test client/server socket communications.
16 public class TestCOPSServer extends Thread {
18 private final static Logger logger = LoggerFactory.getLogger(TestCOPSServer.class);
19 private final ServerSocket serverSocket;
20 final List<COPSMsg> copsMsgs = new ArrayList<>();
22 public TestCOPSServer() throws IOException {
26 private TestCOPSServer(final int port) throws IOException {
27 serverSocket = new ServerSocket(port);
28 Assert.assertTrue(serverSocket.isBound());
31 public void close() throws IOException {
36 public int getPort() {
37 return serverSocket.getLocalPort();
42 final Socket socket = serverSocket.accept();
43 final COPSMsg copsMsg = COPSTransceiver.receiveMsg(socket);
44 logger.info("Read value = " + copsMsg);
45 copsMsgs.add(copsMsg);
47 } catch (Exception e) {
48 logger.error("Error processing message", e);