Merge "Bug 2347: DOMConcurrentDataCommitCoordinator uses wrong phase name"
[controller.git] / third-party / openflowj / src / test / java / org / openflow / io / OFMessageAsyncStreamTest.java
1 package org.openflow.io;
2
3 import org.openflow.protocol.*;
4 import org.openflow.protocol.factory.BasicFactory;
5
6 import java.util.*;
7 import java.nio.channels.*;
8 import java.net.InetSocketAddress;
9
10 import org.junit.Assert;
11
12 import org.junit.Test;
13
14
15 /**
16  * @author Rob Sherwood (rob.sherwood@stanford.edu)
17  *
18  */
19 public class OFMessageAsyncStreamTest {
20     @Test
21     public void testMarshalling() throws Exception {
22         OFMessage h = new OFHello();
23         
24         ServerSocketChannel serverSC = ServerSocketChannel.open();
25         serverSC.socket().bind(new java.net.InetSocketAddress(0));
26         serverSC.configureBlocking(false);
27         
28         SocketChannel client = SocketChannel.open(
29                 new InetSocketAddress("localhost",
30                         serverSC.socket().getLocalPort())
31                 );
32         SocketChannel server = serverSC.accept();
33         OFMessageAsyncStream clientStream = new OFMessageAsyncStream(client, new BasicFactory());
34         OFMessageAsyncStream serverStream = new OFMessageAsyncStream(server, new BasicFactory());
35         
36         clientStream.write(h);
37         while(clientStream.needsFlush()) {
38             clientStream.flush();
39         }
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());
47     }
48 }