1 package org.openflow.io;
3 import org.openflow.protocol.*;
4 import org.openflow.protocol.factory.BasicFactory;
7 import java.nio.channels.*;
8 import java.net.InetSocketAddress;
10 import org.junit.Assert;
12 import org.junit.Test;
16 * @author Rob Sherwood (rob.sherwood@stanford.edu)
19 public class OFMessageAsyncStreamTest {
21 public void testMarshalling() throws Exception {
22 OFMessage h = new OFHello();
24 ServerSocketChannel serverSC = ServerSocketChannel.open();
25 serverSC.socket().bind(new java.net.InetSocketAddress(0));
26 serverSC.configureBlocking(false);
28 SocketChannel client = SocketChannel.open(
29 new InetSocketAddress("localhost",
30 serverSC.socket().getLocalPort())
32 SocketChannel server = serverSC.accept();
33 OFMessageAsyncStream clientStream = new OFMessageAsyncStream(client, new BasicFactory());
34 OFMessageAsyncStream serverStream = new OFMessageAsyncStream(server, new BasicFactory());
36 clientStream.write(h);
37 while(clientStream.needsFlush()) {
40 List<OFMessage> l = serverStream.read();
41 Assert.assertEquals(l.size(), 1);
42 OFMessage m = l.get(0);
43 Assert.assertEquals(m.getLength(),h.getLength());
44 Assert.assertEquals(m.getVersion(), h.getVersion());
45 Assert.assertEquals(m.getType(), h.getType());
46 Assert.assertEquals(m.getType(), h.getType());