1 package org.openflow.codec.protocol;
3 import java.util.ArrayList;
6 import junit.framework.TestCase;
8 import org.openflow.codec.io.DataBuffers;
9 import org.openflow.codec.io.IDataBuffer;
10 import org.openflow.codec.protocol.OFPHello;
11 import org.openflow.codec.protocol.OFPHelloElemHeader;
12 import org.openflow.codec.protocol.OFPHelloElemType;
13 import org.openflow.codec.protocol.OFPHelloElemVersionBitmap;
15 public class OFPHelloTest extends TestCase {
17 private IDataBuffer buffer = DataBuffers.allocate(1024);
19 protected void tearDown() throws Exception {
24 public void testHelloElemTypeMapping() throws Exception {
25 TestCase.assertEquals(OFPHelloElemType.VERSIONBITMAP, OFPHelloElemType.valueOf((short) 1));
28 public void testReadWrite() {
29 OFPHello helloWriter = new OFPHello();
30 List<OFPHelloElemHeader> elements = new ArrayList<OFPHelloElemHeader>();
31 elements.add(OFPHelloElemType.VERSIONBITMAP.newInstance());
32 helloWriter.setHelloElements(elements);
33 helloWriter.writeTo(buffer);
35 OFPHello helloReader = new OFPHello();
36 helloReader.readFrom(buffer);
37 TestCase.assertEquals(helloWriter, helloReader);
40 public void testReadWriteWithBitmap() {
41 OFPHello helloWriter = new OFPHello();
42 List<OFPHelloElemHeader> elements = new ArrayList<OFPHelloElemHeader>();
43 OFPHelloElemVersionBitmap bitmap = (OFPHelloElemVersionBitmap) OFPHelloElemType.VERSIONBITMAP.newInstance();
44 bitmap.setBitmaps(new int[] { 3, 1 });
46 helloWriter.setHelloElements(elements);
47 helloWriter.writeTo(buffer);
49 OFPHello helloReader = new OFPHello();
50 helloReader.readFrom(buffer);
51 TestCase.assertEquals(helloWriter, helloReader);
54 public void testEqualHashcode() {
55 OFPHello helloWriter = new OFPHello();
56 List<OFPHelloElemHeader> elements = new ArrayList<OFPHelloElemHeader>();
57 elements.add(OFPHelloElemType.VERSIONBITMAP.newInstance());
58 helloWriter.setHelloElements(elements);
59 helloWriter.writeTo(buffer);
61 OFPHello helloReader = new OFPHello();
62 helloReader.readFrom(buffer);
63 TestCase.assertEquals(helloWriter, helloReader);
64 TestCase.assertEquals(helloWriter.hashCode(), helloReader.hashCode());