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.OFPQueueConfigReply;
11 import org.openflow.codec.protocol.OFPQueueConfigRequest;
12 import org.openflow.codec.protocol.factory.OFPBasicFactoryImpl;
13 import org.openflow.codec.protocol.queue.OFPPacketQueue;
14 import org.openflow.codec.protocol.queue.OFPQueueProperty;
15 import org.openflow.codec.protocol.queue.OFPQueuePropertyMinRate;
16 import org.openflow.codec.protocol.queue.OFPQueuePropertyType;
17 import org.openflow.codec.util.OFTestCase;
19 public class OFPQueueConfigTest extends OFTestCase {
20 public void testRequest() throws Exception {
21 OFPQueueConfigRequest req = new OFPQueueConfigRequest();
22 req.setPort((short) 5);
23 IDataBuffer bb = DataBuffers.allocate(1024);
28 OFPQueueConfigRequest req2 = new OFPQueueConfigRequest();
30 TestCase.assertEquals(req, req2);
33 public void testReply() throws Exception {
34 OFPQueueConfigReply reply = new OFPQueueConfigReply();
35 reply.setPort((short) 5);
37 OFPPacketQueue queue = new OFPPacketQueue();
39 List<OFPQueueProperty> properties = new ArrayList<OFPQueueProperty>();
40 properties.add(new OFPQueuePropertyMinRate().setRate((short) 1));
41 queue.setProperties(properties);
42 queue.setLength((short) (OFPPacketQueue.MINIMUM_LENGTH + OFPQueuePropertyMinRate.MINIMUM_LENGTH));
44 List<OFPPacketQueue> queues = new ArrayList<OFPPacketQueue>();
46 reply.setQueues(queues);
47 reply.setLengthU(OFPQueueConfigReply.MINIMUM_LENGTH + queue.getLength());
49 IDataBuffer bb = DataBuffers.allocate(1024);
54 OFPQueueConfigReply reply2 = new OFPQueueConfigReply();
55 reply2.setQueuePropertyFactory(new OFPBasicFactoryImpl());
57 TestCase.assertEquals(reply, reply2);
58 TestCase.assertEquals(1, reply2.getQueues().size());
59 TestCase.assertEquals(1, reply2.getQueues().get(0).getProperties().size());
60 TestCase.assertTrue(reply2.getQueues().get(0).getProperties().get(0) instanceof OFPQueuePropertyMinRate);
61 TestCase.assertEquals(OFPQueuePropertyType.MIN_RATE, reply2.getQueues().get(0).getProperties().get(0).getType());
63 reply.getQueues().add(queue.clone());
64 reply.setLengthU(reply.getLengthU() + queue.getLength());
68 reply2 = new OFPQueueConfigReply();
69 reply2.setQueuePropertyFactory(new OFPBasicFactoryImpl());
71 TestCase.assertEquals(reply, reply2);
72 TestCase.assertEquals(2, reply2.getQueues().size());
74 queue.getProperties().add(new OFPQueuePropertyMinRate().setRate((short) 2));
75 queue.setLength((short) (queue.getLength() + OFPQueuePropertyMinRate.MINIMUM_LENGTH));
76 reply.setLengthU(reply.getLengthU() + OFPQueuePropertyMinRate.MINIMUM_LENGTH);
80 reply2 = new OFPQueueConfigReply();
81 reply2.setQueuePropertyFactory(new OFPBasicFactoryImpl());
83 TestCase.assertEquals(reply, reply2);
84 TestCase.assertEquals(2, reply2.getQueues().size());
85 TestCase.assertEquals(2, reply2.getQueues().get(0).getProperties().size());