3 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 * and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.openflow.protocol;
12 import java.nio.ByteBuffer;
13 import java.util.ArrayList;
14 import java.util.List;
16 import junit.framework.TestCase;
18 import org.openflow.protocol.factory.BasicFactory;
19 import org.openflow.protocol.queue.OFPacketQueue;
20 import org.openflow.protocol.queue.OFQueueProperty;
21 import org.openflow.protocol.queue.OFQueuePropertyMinRate;
22 import org.openflow.protocol.queue.OFQueuePropertyType;
23 import org.openflow.util.OFTestCase;
25 public class OFQueueConfigTest extends OFTestCase {
26 public void testRequest() throws Exception {
27 OFQueueConfigRequest req = new OFQueueConfigRequest();
28 req.setPort((short) 5);
29 ByteBuffer bb = ByteBuffer.allocate(1024);
34 OFQueueConfigRequest req2 = new OFQueueConfigRequest();
36 TestCase.assertEquals(req, req2);
39 public void testReply() throws Exception {
40 OFQueueConfigReply reply = new OFQueueConfigReply();
41 reply.setPort((short) 5);
43 OFPacketQueue queue = new OFPacketQueue();
45 List<OFQueueProperty> properties = new ArrayList<OFQueueProperty>();
46 properties.add(new OFQueuePropertyMinRate().setRate((short) 1));
47 queue.setProperties(properties);
48 queue.setLength((short) (OFPacketQueue.MINIMUM_LENGTH + OFQueuePropertyMinRate.MINIMUM_LENGTH));
50 List<OFPacketQueue> queues = new ArrayList<OFPacketQueue>();
52 reply.setQueues(queues);
53 reply.setLengthU(OFQueueConfigReply.MINIMUM_LENGTH + queue.getLength());
55 ByteBuffer bb = ByteBuffer.allocate(1024);
60 OFQueueConfigReply reply2 = new OFQueueConfigReply();
61 reply2.setQueuePropertyFactory(new BasicFactory());
63 TestCase.assertEquals(reply, reply2);
64 TestCase.assertEquals(1, reply2.getQueues().size());
65 TestCase.assertEquals(1, reply2.getQueues().get(0).getProperties().size());
66 TestCase.assertTrue(reply2.getQueues().get(0).getProperties().get(0) instanceof OFQueuePropertyMinRate);
67 TestCase.assertEquals(OFQueuePropertyType.MIN_RATE, reply2.getQueues().get(0).getProperties().get(0).getType());
69 reply.getQueues().add(queue.clone());
70 reply.setLengthU(reply.getLengthU() + queue.getLength());
74 reply2 = new OFQueueConfigReply();
75 reply2.setQueuePropertyFactory(new BasicFactory());
77 TestCase.assertEquals(reply, reply2);
78 TestCase.assertEquals(2, reply2.getQueues().size());
80 queue.getProperties().add(new OFQueuePropertyMinRate().setRate((short) 2));
81 queue.setLength((short) (queue.getLength() + OFQueuePropertyMinRate.MINIMUM_LENGTH));
82 reply.setLengthU(reply.getLengthU() + OFQueuePropertyMinRate.MINIMUM_LENGTH);
86 reply2 = new OFQueueConfigReply();
87 reply2.setQueuePropertyFactory(new BasicFactory());
89 TestCase.assertEquals(reply, reply2);
90 TestCase.assertEquals(2, reply2.getQueues().size());
91 TestCase.assertEquals(2, reply2.getQueues().get(0).getProperties().size());