Bump to odlparent 3.1.0 and yangtools 2.0.3
[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() throws IOException {
23         this(0);
24     }
25
26     private TestCOPSServer(final int port) throws IOException {
27         serverSocket = new ServerSocket(port);
28         Assert.assertTrue(serverSocket.isBound());
29     }
30
31     public void close() throws IOException {
32         this.interrupt();
33         serverSocket.close();
34     }
35
36     public int getPort() {
37         return serverSocket.getLocalPort();
38     }
39
40     public void run() {
41         try {
42             final Socket socket = serverSocket.accept();
43             final COPSMsg copsMsg = COPSTransceiver.receiveMsg(socket);
44             logger.info("Read value = " + copsMsg);
45             copsMsgs.add(copsMsg);
46             socket.close();
47         } catch (Exception e) {
48             logger.error("Error processing message", e);
49         }
50
51     }
52 }