Merge "Updated registration of Binding Aware notification listeners."
[controller.git] / third-party / openflowj / src / test / java / org / openflow / protocol / OFQueueConfigTest.java
1 package org.openflow.protocol;
2
3 import java.nio.ByteBuffer;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import junit.framework.TestCase;
8
9 import org.openflow.protocol.factory.BasicFactory;
10 import org.openflow.protocol.queue.OFPacketQueue;
11 import org.openflow.protocol.queue.OFQueueProperty;
12 import org.openflow.protocol.queue.OFQueuePropertyMinRate;
13 import org.openflow.protocol.queue.OFQueuePropertyType;
14 import org.openflow.util.OFTestCase;
15
16 public class OFQueueConfigTest extends OFTestCase {
17     public void testRequest() throws Exception {
18         OFQueueConfigRequest req = new OFQueueConfigRequest();
19         req.setPort((short) 5);
20         ByteBuffer bb = ByteBuffer.allocate(1024);
21         bb.clear();
22         req.writeTo(bb);
23         bb.flip();
24
25         OFQueueConfigRequest req2 = new OFQueueConfigRequest();
26         req2.readFrom(bb);
27         TestCase.assertEquals(req, req2);
28     }
29
30     public void testReply() throws Exception {
31         OFQueueConfigReply reply = new OFQueueConfigReply();
32         reply.setPort((short) 5);
33
34         OFPacketQueue queue = new OFPacketQueue();
35         queue.setQueueId(1);
36         List<OFQueueProperty> properties = new ArrayList<OFQueueProperty>();
37         properties.add(new OFQueuePropertyMinRate().setRate((short) 1));
38         queue.setProperties(properties);
39         queue.setLength((short) (OFPacketQueue.MINIMUM_LENGTH + OFQueuePropertyMinRate.MINIMUM_LENGTH));
40
41         List<OFPacketQueue> queues = new ArrayList<OFPacketQueue>();
42         queues.add(queue);
43         reply.setQueues(queues);
44         reply.setLengthU(OFQueueConfigReply.MINIMUM_LENGTH + queue.getLength());
45
46         ByteBuffer bb = ByteBuffer.allocate(1024);
47         bb.clear();
48         reply.writeTo(bb);
49         bb.flip();
50
51         OFQueueConfigReply reply2 = new OFQueueConfigReply();
52         reply2.setQueuePropertyFactory(new BasicFactory());
53         reply2.readFrom(bb);
54         TestCase.assertEquals(reply, reply2);
55         TestCase.assertEquals(1, reply2.getQueues().size());
56         TestCase.assertEquals(1, reply2.getQueues().get(0).getProperties().size());
57         TestCase.assertTrue(reply2.getQueues().get(0).getProperties().get(0) instanceof OFQueuePropertyMinRate);
58         TestCase.assertEquals(OFQueuePropertyType.MIN_RATE, reply2.getQueues().get(0).getProperties().get(0).getType());
59
60         reply.getQueues().add(queue.clone());
61         reply.setLengthU(reply.getLengthU() + queue.getLength());
62         bb.clear();
63         reply.writeTo(bb);
64         bb.flip();
65         reply2 = new OFQueueConfigReply();
66         reply2.setQueuePropertyFactory(new BasicFactory());
67         reply2.readFrom(bb);
68         TestCase.assertEquals(reply, reply2);
69         TestCase.assertEquals(2, reply2.getQueues().size());
70
71         queue.getProperties().add(new OFQueuePropertyMinRate().setRate((short) 2));
72         queue.setLength((short) (queue.getLength() + OFQueuePropertyMinRate.MINIMUM_LENGTH));
73         reply.setLengthU(reply.getLengthU() + OFQueuePropertyMinRate.MINIMUM_LENGTH);
74         bb.clear();
75         reply.writeTo(bb);
76         bb.flip();
77         reply2 = new OFQueueConfigReply();
78         reply2.setQueuePropertyFactory(new BasicFactory());
79         reply2.readFrom(bb);
80         TestCase.assertEquals(reply, reply2);
81         TestCase.assertEquals(2, reply2.getQueues().size());
82         TestCase.assertEquals(2, reply2.getQueues().get(0).getProperties().size());
83     }
84 }