/** * 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.sal; 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.Capabilities; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder; /** * Tests for setting switch features for different version of OF plugin * * @author jsebin * */ public class SwitchFeaturesUtilTest { private GetFeaturesOutputBuilder featuresOutputBuilder; private SwitchFeaturesUtil swUtil; /** * initialization of {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder GetFeaturesOutputBuilder} * and {@link SwitchFeaturesUtil SwitchFeaturesUtil} * @throws Exception */ @Before public void setUp() throws Exception { featuresOutputBuilder = new GetFeaturesOutputBuilder(); swUtil = SwitchFeaturesUtil.getInstance(); } /** * @throws Exception */ @After public void tearDown() throws Exception { featuresOutputBuilder = null; swUtil = null; } /** * Test method for * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.0 version * and switch feature capabilities * . */ @Test public void testSwFeaturesCapabilitiesV10() { CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, false); featuresOutputBuilder.setCapabilitiesV10(capabilities).setVersion((short) 1); Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build())); } /** * Test method for * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.3 version * and switch feature capabilities * . */ @Test public void testSwFeaturesCapabilitiesV13() { Capabilities capabilities = new Capabilities(true, false, true, false, true, false, true); featuresOutputBuilder.setCapabilities(capabilities).setCapabilitiesV10(null).setVersion((short) 4); Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build())); } /** * Test method for * {@link SwitchFeaturesUtil#buildSwitchFeatures} for malformed switch feature capabilities * - at least one feature is null * . */ //@Test TODO:do we need to check if capability is null? public void testSwFeaturesCapabilitiesMalformed() { CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, null); featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 1); Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build())); } /** * Test method for * {@link SwitchFeaturesUtil#buildSwitchFeatures} for mismatch between * version and switch feature capabilities * . */ @Test public void testSwFeaturesCapabilitiesVersionMismatch() { CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, false); featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 4); Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build())); } /** * Test method for * {@link SwitchFeaturesUtil#buildSwitchFeatures} for nonexisting version * . */ @Test public void testSwFeaturesCapabilitiesNonexistingVersion() { CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, false); featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 0); Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build())); } }