/**
* Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.openflowplugin.openflow.md.core.session;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeatures;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeaturesV10;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortReason;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;
/**
* @author jsebin
*/
public class PortFeaturesUtilTest {
private PortStatusMessageBuilder portStatusMessageBuilder;
private PortFeaturesUtil portUtil;
/**
* initialization of {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder.PortStatusMessageBuilder}
* and {@link PortFeaturesUtil}
* @throws Exception
*/
@Before
public void setUp() throws Exception {
portStatusMessageBuilder = new PortStatusMessageBuilder();
portUtil = PortFeaturesUtil.getInstance();
}
/**
* @throws Exception
*/
@After
public void tearDown() throws Exception {
portStatusMessageBuilder = null;
portUtil = null;
}
/**
* Test method for
* {@link PortFeaturesUtil#getPortBandwidth()} for OF 1.0 version
* and features
* .
*/
@Test
public void testFeaturesV10() {
PortFeaturesV10 features = new PortFeaturesV10(true, true, true, false, true, false, true, true, true, false, true, false);
portStatusMessageBuilder.setReason(PortReason.OFPPRMODIFY).setVersion((short) 1).setCurrentFeaturesV10(features);
Assert.assertNotNull(portUtil.getPortBandwidth(portStatusMessageBuilder.build()));
}
/**
* Test method for
* {@link PortFeaturesUtil#getPortBandwidth()} for OF 1.3 version
* and features
* .
*/
@Test
public void testFeaturesV13() {
PortFeatures features = new PortFeatures(true, true, true, false, true, false, true, true, true, false, true, false, false, true, false, false);
portStatusMessageBuilder.setReason(PortReason.OFPPRMODIFY).setVersion((short) 4).setCurrentFeatures(features);
Assert.assertNotNull(portUtil.getPortBandwidth(portStatusMessageBuilder.build()));
}
/**
* Test method for
* {@link PortFeaturesUtil#getPortBandwidth()} for malformed features
* - at least one feature is null
* .
*/
@Test
public void testFeaturesMalformed() {
PortFeaturesV10 features = new PortFeaturesV10(true, true, true, true, true, true, false, false, false, false, true, null);
portStatusMessageBuilder.setReason(PortReason.OFPPRMODIFY).setVersion((short) 1).setCurrentFeaturesV10(features);
Assert.assertNull(portUtil.getPortBandwidth(portStatusMessageBuilder.build()));
}
/**
* Test method for
* {@link PortFeaturesUtil#getPortBandwidth()} for mismatch between
* port version and port features
* .
*/
@Test
public void testFeaturesVersionMismatch() {
PortFeatures features = new PortFeatures(true, true, true, false, true, false, true, true, true, false, true, false, false, true, false, false);
portStatusMessageBuilder.setReason(PortReason.OFPPRMODIFY).setVersion((short) 1).setCurrentFeatures(features);
Assert.assertNull(portUtil.getPortBandwidth(portStatusMessageBuilder.build()));
}
/**
* Test method for
* {@link PortFeaturesUtil#getPortBandwidth()} for nonexisting port version
* .
*/
@Test
public void testFeaturesNonexistingVersion() {
PortFeatures features = new PortFeatures(true, true, true, false, true, false, true, true, true, false, true, false, false, true, false, false);
portStatusMessageBuilder.setReason(PortReason.OFPPRMODIFY).setVersion((short) 0).setCurrentFeatures(features);
Assert.assertNull(portUtil.getPortBandwidth(portStatusMessageBuilder.build()));
}
}